home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / info / gestalt-selectors-26.hqx / gestalt-selectors-26.etx
Encoding:
Text File  |  1994-10-12  |  187.4 KB  |  4,379 lines

  1.  
  2. Gestalt Selectors List 2.5.10
  3. =============================
  4. First published: 12 October 1992, 13:15 CET (GMT+1)
  5. Last modified  : 12 October 1994, 00:30 CET (GMT+1)
  6.  
  7. This document lists all selectors for use with the Gestalt Manager known to
  8. the editor. These can include selector codes installed by Apple (system)
  9. software or by software from third and so called "fourth" parties (your
  10. software?).
  11. The information in this list is useful for programmers and other people who
  12. can use the Gestalt Manager with their software perhaps even using
  13. externals (with HyperCard, 4th Dimension etc.).
  14.  
  15. This file can be best viewed with a mono-spaced font like Monaco. Because
  16. it is wrapped as setext you can use several utilities to index and read it.
  17. For the Macintosh you can use Easy View and on a UNIX system sv (setext
  18. viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu
  19. (or its mirrors!), archived respectively as:
  20.      info-mac/text/easy-view-250.hqx
  21.      info-mac/text/setext-viewer-05-unix.uu
  22.  
  23. A single question mark indicates an uncertainty regarding the information
  24. in front of the question mark. Three question marks indicate complete
  25. absence of the information.
  26. See for more information about this list the chapters at the end.
  27.  
  28. Contents
  29. --------
  30.     Changes
  31.       Contributions
  32.       Changes Overview
  33.     Gestalt Selector Codes
  34.       Apple System Software (A-F)
  35.       Apple System Software (G-L)
  36.       Apple System Software (M-R)
  37.       Apple System Software (S-Z)
  38.       Apple Additional Software
  39.       Third Parties Software
  40.     Unknown Gestalt Selector Codes
  41.       Apple Software
  42.       Third Parties Software
  43.     Gestalt Problems
  44.     Gestalt Manager Calls
  45.       Gestalt Manager Routines
  46.       Undocumented Gestalt Manager Routines
  47.       Gestalt Value Routines
  48.     History
  49.       Environs
  50.       SysEnvirons
  51.       Gestalt
  52.     Reports
  53.       AppleShare File & Print Server selector codes
  54.       AppleTalk
  55.       Copy protection using Gestalt
  56.       Environs & SysEnvirons
  57.       Executor Mac-emulator
  58.       GestaltValue
  59.       Glue code
  60.       PPC Libraries
  61.       QuickTime
  62.       RAM Doubler 1.0
  63.     Kilo-liners
  64.       Direct Gestalt Calls
  65.       Direct GestaltValue Calls
  66.       GestaltSelectorZero
  67.       GestaltBitTest
  68.       Call Gestalt Function Direct
  69.     Abbreviations
  70.     Sources
  71.     Related Software
  72.     URL
  73.     About this list
  74.       Availability
  75.       Acknowledgements
  76.     Definitions and Format
  77.       Use in Language
  78.       Definitions
  79.       Format Selector Entry
  80.       Format Version Numbers
  81.     Legal Stuff
  82.       Notice of Liability
  83.       Trademarks
  84.       Distribution
  85.     Editor's Address
  86.  
  87. Changes
  88. =======
  89. All contributions and changes to this list since the previous version are
  90. listed with this chapter.
  91.  
  92. Contributions
  93. -------------
  94. This section list the people who contributed information which is now
  95. included with this version of the list.
  96.  
  97. ===========================================================================
  98. Contributions to the selector sections
  99. ===========================================================================
  100. Person                 Software                Selector(s) added/changed
  101. ---------------------------------------------------------------------------
  102. Richard Buckle         MacPPP mdev?            PPP 
  103. Marc Cooperman         System (enablers)       kbd 
  104. Lawrence D'Oliveiro    QuickDraw GX            grfx, gfxa
  105. Dave Falkenburg        System (enablers)       cfrg
  106. Rick Gansler           System (enablers)       sysv
  107. Michael Hecht          Macintosh Easy Open cp  xlat
  108. Bill Hofmann           System (enablers)       proc
  109. David Lewis            System (enablers)       intd
  110. Spencer Low            System?                 icon
  111. John Mancino           System et al.           aslm, easy, hdwr, mbox,
  112.                                                ppc , proc, reno
  113. Roland Mansson         System (enablers)       icon, kbd , mach
  114. Carl R. Osterwald      System (enablers)       mach
  115. Marco Piovanelli       Macintosh Easy Open cp  xlat
  116.                        System: Standard File Package   
  117.                                                lang
  118. Thomas Reed            Coffee Break app        Cafe, SAVR
  119. Paul Reznick           System (enablers)       kbd , proc
  120. Rene G.A. Ros          A La Carte cp           AlaC
  121.                        Apple Menu Options cp   CDJR
  122.                        Automated Diagnostics ext, part of Apple Personal
  123.                          Diagnostics 1.0       diag
  124.                        Blood cp                Blad
  125.                        CD-ROM software         hscd
  126.                        Coffee Break appl       Cafe
  127.                        ColorSync ext           cmta, cmtc
  128.                        Control Strip cp        csvr, sdev, sdvr
  129.                        Date & Time cp / SuperClock cp
  130.                                                MClk
  131.                        Desktop Strip cp        CsWT
  132.                        File System Manager ext fs  , fsm 
  133.                        File Tracker Controls cp
  134.                                                FWCP, ReSp
  135.                        FileWave 2.0            FW14
  136.                        Finder 7.1.3            fnda, fnd*, fndc, fndr
  137.                        KanjiTalk               jkbd
  138.                        Mount'em app            mtem
  139.                        MountAlias cp           jsm1
  140.                        QuickTime ext           qtim
  141.                        Shared Library Mgr      aslm
  142.                        Snitch ext              SNIT
  143.                        SoftwareFPU             FPUE
  144.                        SpigotVDIG ext          SPLO
  145.                        SpeakAlert cp           SPAL
  146.                        Speech Manager 1.2 ext  ttsc
  147.                        Speech Recognition ext  srta, srtb
  148.                        System (enablers)       a/ux, afps, batt, bugx,
  149.                                                bugy, cptn, ctbv, dplv,
  150.                                                dply, dude, dudi, fs  ,
  151.                                                gval, hdwr, help, intd,
  152.                                                kbd , mach, mixd, proc,
  153.                                                port, qd  , qdrw, scri,
  154.                                                scsi, snhw, vm  
  155.                        Talk*Control cp         ADTK, LNCH
  156.                        Thread Manager ext      thds
  157.                        Wizard INIT ext         Mgc!
  158.                        WorldScript I           ws 1
  159.                        unknown                 icon, ot  
  160. Mark Simmons           System (enablers)       mach
  161. Tim Swihart            System 7.5              mach
  162. Ilan Szekely           DepthCharge cp          *DC*
  163.                        PPP mdev                PPP 
  164. Jonathan Wilson        System (enablers)       mach
  165. ---------------------------------------------------------------------------
  166.  
  167. ===========================================================================
  168. Contributions to the non-selector sections
  169. ===========================================================================
  170. Person                 Chapter/Section(s)
  171. ---------------------------------------------------------------------------
  172. John Baxter            Reports                 PPC Libraries
  173. Lawrence D'Oliveiro    Kilo-liners             GestaltBitTest
  174. Rick Gansler           Gestalt Problems        Gestalt Mgr on Sys 7.1.2
  175. Rene G.A. Ros          Abbreviations           AWAC, EASC, FMC, JMC, OMC,
  176.                                                OSS, PCI, RPU, RSB
  177.                        Related Software        Gestalt Environment 7
  178.                                                Informant XFCN
  179.                                                Mac Identifier 1.0
  180.                                                Tattle-Tech
  181.                                                Userfunction Gestalt
  182.                        Reports                 QuickTime
  183. Hans Verbrugge         Related Software        Get Gestalt
  184. ---------------------------------------------------------------------------
  185.  
  186. Changes Overview
  187. ----------------
  188. Added selectors
  189.   Apple System  : -
  190.   Apple Add.    : fsm , srta, srtb, ws 1
  191.   Third Parties : CsWT, FPUE, PPP 
  192. Added unknown
  193.   Apple Softw.  : diag, jkbd, lang, mtem, ot  
  194.   Third Parties : *DC*, AlaC, Blad, Cafe, FW14, Mgc!, SNIT, SPAL, SPLO
  195. Changed selectors
  196.   Apple System  : a/ux, afps, cfrg, csvr, ctbv, cpnt, dplv, dply, easy,
  197.                   fndr, fs  , gval, hdwr, help, hscd, icon, intd, kbd ,
  198.                   mach, mbox, proc, qd  , qdrw, sdev, sdvr, snhw, sysv,
  199.                   vm  , xlat
  200.   Apple Add.    : cmta, cmtc, gfxa, grfx, ttsc
  201.   Third Parties : jsm1, SAVR
  202. Changed unknown
  203.   Apple Softw.  : aslm, batt, bugx, bugy, dude, dudi, fnda, fnd*, fndc,
  204.                   port
  205.   Third Parties : FWCP, ReSp
  206. Previously unknown
  207.   Apple System  : scsi
  208.   Apple Add.    : -
  209.   Third Parties : Cafe
  210. Includes updates 2.5.1 up to and including 2.5.10, sent to subscribers of
  211. the mailing list.
  212.  
  213. The new Inside Macintosh Operating System Utilities is available (at least
  214. electronically) and a few pieces of information in the GSL are corrected or
  215. added. I see no reason to change the basics for the GSL, new selectors and
  216. attribute bits will keep appearing as the system software develops...
  217.  
  218. I now merged the unknown 'Apple System Software' and 'Apple Additional
  219. Software' selectors into one 'Apple Software' section.
  220. The 'known Apple System Software' section is now divided into four groups.
  221. The chapter 'Gestalt Problems' is new. It lists known problems with
  222. Gestalt selectors.
  223. Reformatted the 'Related Software' chapter and included URL formats for
  224. FTP and WWW locations. All URL's are also listed in a separate chapter
  225. called 'URL'. This chapter is the only one ignoring the 80 characters per
  226. line limit.
  227.  
  228. Source code has been changed to Pascal except for some function types of
  229. which no Pascal is available. I chose Pascal to be the standard for this
  230. list after I received remarks and suggestions about this.
  231.  
  232. The note about the gestaltKeyboardType selector not being installed on
  233. the PowerMac 7100/66 was triggered by an Usenet posting by Marc Cooperman.
  234. His observation was confirmed by me because Gestalt! reports of the
  235. PM 7100/66 indeed do not list this selector, but I never noticed this when
  236. I received these reports! Other (Power)Macs don't seem to have this
  237. problem.
  238.  
  239. The GSL has been made available by Robert Lentz on a World Wide Web server.
  240. It now has the latest version and a reference to it is included with the
  241. 'About This List/Availability' section.
  242.  
  243. Included information from the:
  244.  - Bookmark CD #18,
  245.  - Bookmark CD #19,
  246.  - WWDC 1994 CD,
  247.  - Developer CD Series August 1994 Tool Chest CD and
  248.  - Developer CD Series September 1994 Reference Library CD.
  249.  
  250. Roland Mansson provided the information from the latest Gestalt &
  251. SysEnvirons TechNote (rev. September 1994). The most important news
  252. is that the machine ID's will be reused...
  253.  
  254. The following selectors are now installed with software included with
  255. System 7.5 and are moved from the 'Apple Additional Software' to the 'Apple
  256. System Software' section:
  257.       ascr, ascv, aucd, cpkr,
  258.       drag, hscd, icmp, iscd,
  259.       kpcd, mtcp, qtim, qtrs,
  260.       scra, sdev, sdvr, snhw,
  261.       teat, thds, ufox, xlat
  262. And these from the unknown 'Third Party Software' to the unknown 'Apple
  263. Software' section:
  264.       CDJR, HAM , MClk
  265.  
  266. Gestalt Selector Codes
  267. ======================
  268. The following sections list selector codes of which the meaning is know.
  269. For easier reading when using a setext viewer the 'Apple System Software'
  270. section has been divided into four groups grouped on the first character
  271. of the selectorcode (A-F, G-L, M-R and S-Z).
  272.  
  273. But first a table with the different software components of the System
  274. Software with their related selectors. The selectors listed with this
  275. table are included in the 'Apple System Software' and 'Apple Additional
  276. Software' sections below it.
  277.  
  278. ===========================================================================
  279. System Software components and their selectors
  280. ===========================================================================
  281. Manager                        Determine presence/features by using:
  282. ---------------------------------------------------------------------------
  283. A/UX                           a/ux
  284. ADB Mgr                        ???
  285. Alias Mgr                      alis
  286. Apple Remote Access            arb , strm
  287. AppleScript                    ascr, ascv
  288. AppleTalk                      atkv, atlk
  289. At Ease                        kids
  290. CD-ROM Software                aucd, hscd, iscd, kpcd, ufox
  291. CloseView                      BSDa
  292. Code Fragment Mgr              cfrg
  293. Collection Mgr                 cltn
  294. Color Picker                   cpkr
  295. ColorSync Utilities            cmta, cmtc
  296. Communications Toolbox         conn, crm , ctbm, ctbu, ctbv, term
  297. Component Mgr                  cpnt
  298. Compression Mgr                icmp
  299. Control Strip                  sdev, csvr
  300. Cursor Utilities               qd >= gestalt32BitQD
  301. Data Access Mgr                dbac
  302. Dialog Mgr                     ditl
  303. Dictionary Mgr                 dict
  304. Disk Initialization Mgr        fs  
  305. Display Mgr                    dplv, dply
  306. Drag Manager                   drag
  307. Easy Access                    eajt, easy
  308. Edition Mgr                    edtn
  309. Event Mgr                      evnt
  310. File System Mgr                fs  , fsm 
  311. File Transfer Mgr              fxfr
  312. Finder                         fndr
  313. FindFolder function            fold
  314. Flagship                       flag
  315. Font Mgr                       font
  316. Gestalt Mgr                    gval, tabl, vers, TrapAvailable(_Gestalt)
  317. Graphics                       gfxa, grfx
  318. Help Mgr                       help
  319. Icon Utilities                 icon, TrapAvailable(_IconDispatch)
  320. LAP Mgr                        atlk >= 53
  321. MacTCP                         mtcp
  322. Memory Mgr                     addr, cash, lram, ram , os  
  323. Message Mgr                    mess
  324. Mixed Mode Mgr                 mixd
  325. Notification Mgr               nmgr
  326. Offscreen Graphic Worlds       sysv >= $0700
  327. PC Exchange                    pcxg
  328. Picture Utilities              sysv >= $0700
  329. Popup CDEF                     pop!
  330. Power Mgr                      powr
  331. PowerTalk                      dfnd, dsig, malr, ocet, oceu, prpv,
  332.                                sdvr, spsl
  333. PPC Toolbox                    ppc 
  334. Printing Mgr                   pmgr
  335. Process Mgr                    os  
  336. QuickDraw                      qd  , qdrw
  337. QuickDraw GX                   qdgx
  338. QuickTime                      qtim, qtrs
  339. Realtime Mgr                   rtmr
  340. Resource Mgr                   rsrc
  341. Scrap Mgr                      scra
  342. Script Mgr                     scr#, scri
  343. SCSI Manager                   scsi
  344. Slot Mgr                       nubs, slot, slt1, sltc
  345. Sound Mgr                      snd , snhw
  346. Speech Mgr                     ttsc
  347. Speech Recognition             srta, srtb
  348. Standard File Package          stdf
  349. Standard NBP                   nlup
  350. System Toolbox (hardware)      cput, fpu , hdwr, intd, kbd , mach,
  351.                                mmu , proc, prty, rbv , rom , romv,
  352.                                sccr, sccw, ser , sysa, via1, via2
  353. System Toolbox (software)      lmem, micn, misc, os  , ostt, osyv,
  354.                                sysv, tbtt, xttt
  355. TextEdit                       te  , teat
  356. Text Services Mgr              tsmv, tmTE, tmTV
  357. Thread Mgr                     thds
  358. Time Mgr                       tmgr
  359. Translation Mgr                xlat
  360. Virtual Memory Mgr             pgsz, vm  
  361. Workstation Management Agent   wma.
  362. WorldScript                    ws 1
  363. XTND Technology                XTND
  364. ---------------------------------------------------------------------------
  365.  
  366. Apple System Software (A-F)
  367. ---------------------------
  368. a/ux (A/UX [2.0?])
  369.      (System [6.0.4])
  370.      gestaltAUXVersion
  371.      Returns the version of A/UX, if it is executing, as BCD?
  372.  
  373.      gestaltAUXVersion = 'a/ux'; {A/UX version, if present}
  374.  
  375.      NOTES:
  376.      If Gestalt doesn't know the answer, test bit 9 of the HWCFgFlag
  377.      system global ($0B22; Integer). if it is, assume you have A/UX 1.0.
  378.  
  379.      This selector also indicates if you're running under MAE on an
  380.      UNIX machine. *AD08
  381. addr (System [6.0.4])
  382.      gestaltAddressingModeAttr
  383.      Returns information about the current addressing mode.
  384.  
  385.      gestaltAddressingModeAttr = 'addr'; {addressing mode attributes}
  386.      gestalt32BitAddressing    = 0;      {started up with 32-bit addr.}
  387.      gestalt32BitSysZone       = 1;      {system heap has 32-bit clean}
  388.                                          {block headers}
  389.      gestalt32BitCapable       = 2;      {machine is 32-bit capable}
  390. alis (System [7.0])
  391.      (Remote Access Aliases ext [1.0?], part of Apple Remote Access)
  392.      gestaltAliasMgrAttr
  393.      Returns information about the Alias Manager.
  394.  
  395.      gestaltAliasMgrAttr                    = 'alis';{Alias Mgr attributes}
  396.      gestaltAliasMgrPresent                 = 0;
  397.      gestaltAliasMgrSupportsRemoteAppletalk = 1;     {supports Remote}
  398.                                                      {Appletalk} *AD02
  399.      gestaltAlias???                        = 2;     {since System 7.1 Pro}
  400.  
  401.      NOTE: See 'Reports' chapter (QuickTime section) for more information.
  402. ascr (AppleScript ext [1.0]) 
  403.      gestaltAppleScriptAttr *AS08
  404.      Returns information about AppleScript.
  405.  
  406.      gestaltAppleScriptAttr           = 'ascr'; {AppleScript attributes}
  407.      gestaltAppleScriptPresent        = 0;
  408.      gestaltAppleScriptPowerPCSupport = 1;
  409. ascv (AppleScript ext [1.0])
  410.      gestaltAppleScriptVersion *AS08
  411.      Returns the version of AppleScript as NumVersion.
  412.  
  413.      gestaltAppleScriptVersion = 'ascv'; {AppleScript version}
  414.      
  415.      NOTE:
  416.      AppleScript 1.1 returns $01100110 which doesn't look like a proper
  417.      version number (version 1.0 returned $01008000). (Rene Ros)
  418. atkv (System [7.0, AppleTalk 56])
  419.      gestaltATalkVersion *AT02
  420.      Returns AppleTalk version as NumVersion.
  421.  
  422.      This is different from 'atlk' !
  423.  
  424.      gestaltATalkVersion = 'atkv'; {AppleTalk version} *AD01/M01
  425.  
  426.      WARNING:
  427.      This selector returns the majorRev field of the NumVersion record as
  428.      hexadecimal instead of the usual BCD.
  429.  
  430.      NOTE: See 'Reports' chapter (AppleTalk section) for more information.
  431. atlk (System [6.0.4])
  432.      gestaltAppleTalkVersion
  433.      Returns the version of the .MPP driver as INTEGER.
  434.  
  435.      gestaltAppleTalkVersion = 'atlk'; {AppleTalk version}
  436. aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *AT03
  437.      gestaltAudioCDAccessVersion?
  438.      Returns Audio CD Access version as BCD.
  439.  
  440.      gestaltAudioCDAccessVersion? = 'aucd'; {Audio CD Access version}
  441.  
  442.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  443. BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
  444.      gestaltCloseViewAttr
  445.      Returns information about the CloseView Control Panel.
  446.  
  447.      gestaltCloseViewAttr               = 'BSDa'; {CloseView attributes}
  448.      gestaltCloseViewEnabled            = 0;
  449.      gestaltCloseViewDisplayMgrFriendly = 1;      {Closeview compatible}
  450.                                                   {with Display Manager}
  451.                                                   {(FUTURE)} *AS05
  452. cash (System [???]) *S03
  453.      gestaltRAMCacheSize
  454.      Returns byte-size of physical RAM allocated to Disk Cache.
  455.      0 = Disk Cache Off
  456.  
  457.      gestaltRAMCacheSize = 'cash'; {RAM cache size}
  458.  
  459.      NOTE:
  460.      This selector is listed in THINK Reference 1.0 but it is unknown which
  461.      System Software version should install it.
  462. cfrg (System [7.1.2?])
  463.      gestaltCFMAttr
  464.      Returns information about the Code Fragment Manager machines.
  465.  
  466.      gestaltCFMAttr    = 'cfrg'; {Code Fragment Mgr attributes}
  467.      gestaltCFMPresent = 0;      {Code Fragment Manager is present}
  468.  
  469.      NOTE:
  470.      Don't rely on the presence of CFM along to check for a PowerMac. The
  471.      CFM will likely appear on 680x0 platforms as well. (Dave Falkenburg)
  472. conn (System [7.0])
  473.      gestaltConnMgrAttr
  474.      Returns information about the Connection Manager.
  475.  
  476.      gestaltConnMgrAttr         = 'conn'; {Conn. Mgr attributes}
  477.      gestaltConnMgrPresent      = 0;      {Connection Mgr is present}
  478.      gestaltConnMgrCMSearchFix  = 1;      {fix for CMAddSearch present}
  479.      gestaltConnMgrErrorString  = 2;      {has CMGetErrorString} *AS02
  480.      gestaltConnMgrMultiAsyncIO = 3;      {CMNewsIOPB,CMDisposeIOPB,} *AS02
  481.                                           {CMPBRead,CMPBWrite,CMPBIOKill}
  482.  
  483.      NOTE:
  484.      With System 6, this Gestalt selector isn't implemented when the
  485.      Communications Toolbox is installed. (Michael Hecht)
  486. cpkr (Color Picker ext [2.0?])
  487.      gestaltColorPickerMgrAttr
  488.      Returns information about the Color Picker Manager.
  489.  
  490.      gestaltColorPickerMgrAttr     = 'cpkr'; {ColorPicker Mgr attributes}
  491.      gestaltColorPickerMgrPresent? = 0?;     {ColorPicker Mgr Present}
  492.      (Marco Piovanelli, Lawrence D'Oliveiro)
  493.  
  494.      NOTE:
  495.      Extension version 2.0a4 returns a response ($0x0001) which is
  496.      according to the info above. Version 2.0a5 however returns $0x0100, is
  497.      this an error?
  498. cpnt (System [7.1])
  499.      (Color Picker Extension ext [2.0])
  500.      (Color Sync ext [1.0.4?])
  501.      (Macintosh Easy Open cp [1.0?])
  502.      (QuickTime ext [1.0])
  503.      (Speech Manager ext [1.1.1, not 1.2?])
  504.      gestaltComponentMgr
  505.      Returns Component Manager version as INTEGER.
  506.  
  507.      gestaltComponentMgr = 'cpnt'; {Component Mgr version} *AS01
  508. cput (System [7.1.2?]) *AS04/AS05
  509.      gestaltNativeCPUtype
  510.      Returns a value that indicates the type of native processor that is
  511.      currently running.
  512.  
  513.      gestaltNativeCPUtype = 'cput'; {Native CPU type}
  514.  
  515.      {Motorola Architecture}
  516.      gestaltCPU68000 = $0x001;
  517.      gestaltCPU68010 = $0x002;
  518.      gestaltCPU68020 = $0x003;
  519.      gestaltCPU68030 = $0x004;
  520.      gestaltCPU68040 = $0x005;
  521.      {PowerPC Architecture}
  522.      gestaltCPU601   = $0x101;
  523.      gestaltCPU603   = $0x103;
  524.      gestaltCPU604   = $0x104;
  525.      gestaltCPU620?  = ???;
  526.  
  527.      NOTE:
  528.      To check whether the native system architecture is a MC680x0 or a
  529.      PowerPC use the gestaltSysArchitecture ('sysa') selector.
  530.  
  531.      The GestaltEqu.h file published with E.T.O. #12 was replaced by the
  532.      one on E.T.O. #13. However there was made a mistake, it lists the 68K
  533.      values in the range 0-4 while it should be 1-5 as listed above.
  534.      This problem is acknowledged by Apple.
  535.      You can fix this problem by using the declarations listed above or by
  536.      using the GestaltEqu.h file from E.T.O. #13 but then test first the
  537.      gestaltSysArchitecture ('sysa') selector and when it reports a 68K
  538.      machine use gestaltProcessorType.
  539.      (Dave Radcliffe, Roland Mansson, Rene Ros)
  540. crm  (System [7.0])
  541.      (Communications Toolbox for System 6)
  542.      gestaltCRMAttr
  543.      Returns information about the Communications Resource Manager.
  544.  
  545.      gestaltCRMAttr          = 'crm '; {Comm. Resource Mgr attributes}
  546.      gestaltCRMPresent       = 0;      {Comm. Resource Mgr present}
  547.      gestaltCRMPersistentFix = 1;      {fix for persistent tools} *AS02
  548.      gestaltCRMToolRsrcCalls = 2;      {has CRMGetToolResource/}  *AS02
  549.                                        {ReleaseToolResource}
  550. csvr (Control Strip cp [1.0], part of PowerBook Utilities)
  551.      gestaltControlStripVersion
  552.      Returns the version of Control Strip software that is installed as
  553.      NumVersion.
  554.  
  555.      gestaltControlStripVersion = 'csvr';
  556.  
  557.      WARNING:
  558.      Control Strip 1.0 used to install the 'sdvr' selector (which is used
  559.      by PowerTalk) instead of this selector to return the version. This is
  560.      corrected when the gestaltControlStripAttr ('sdev') selector has bit
  561.      gestaltControlStripVersionFixed set (unknown which version sets it).
  562.      No written documentation found, based on header file. *AS11 (Rene Ros)
  563.  
  564.      NOTE:
  565.      Control Strip displays a row with icons and popup menus to quickly
  566.      change settings on portable macs, i.e. AppleTalk and the sound volume.
  567. ctbm (System [7.0])
  568.      (Communications Toolbox for System 6)
  569.      gestaltCTBManagersAttr
  570.      Returns information about the Communications Toolbox Managers, it is a
  571.      bitmask of which managers are present.
  572.  
  573.      gestaltCTBManagersAttr = 'ctbm'; {Comm. Mgrs attributes} *S02
  574. ctbu (System [7.0])
  575.      (Communications Toolbox for System 6)
  576.      gestaltCTBUtilsAttr
  577.      Returns information about the Communications Toolbox Utilities.
  578.  
  579.      gestaltCTBUtilsAttr    = 'ctbu'; {Comm. TB Utils attributes} *S02
  580.      gestaltCTBUtilsPresent = 0;      *S02
  581. ctbv (System [7.0])
  582.      (Communications Toolbox for System 6)
  583.      gestaltCTBVersion
  584.      Returns the version number of the Communications Toolbox.
  585.  
  586.      gestaltCTBVersion = 'ctbv'; {Comm. Toolbox version}
  587.  
  588.      NOTE:
  589.      With the Power Macintosh the Communication Toolbox returned a Gestalt
  590.      value indicating version 1.1 while the ROM actually had version 1.0.
  591.      This is fixed by the PowerPC Enabler 1.0.1. and the PowerPC Upgrade
  592.      Card Enabler 1.0.1. because they install CTB 1.1. *AT06
  593.      But this 'ctbv' selector returns version numbers like $0710 not $0011
  594.      so what does Apple mean? (Rene Ros)
  595. dbac (System [7.0])
  596.      gestaltDBAccessMgrAttr
  597.      Returns information about the Data Access Manager.
  598.  
  599.      gestaltDBAccessMgrAttr    = 'dbac'; {Data Access Mgr attributes}
  600.      gestaltDBAccessMgrPresent = 0;      {TRUE if Data Access Mgr present}
  601. dfnd (PowerTalk ext [1.0?], part of System 7.1 Pro)
  602.      gestaltSDPFindVersion
  603.      Returns the SDP Find version as INTEGER.
  604.  
  605.      gestaltSDPFindVersion = 'dfnd'; {SDP Find version}
  606. dict (System [7.1])
  607.      gestaltDictionaryMgrAttr
  608.      Returns information about the Dictionary Manager.
  609.  
  610.      gestaltDictionaryMgrAttr    = 'dict'; {Dictionary Mgr attributes}
  611.      gestaltDictionaryMgrPresent = 0;
  612. ditl (System [7.0])
  613.      gestaltDITLExtAttr
  614.      Returns information about the Dialog Manager.
  615.  
  616.      gestaltDITLExtAttr    = 'ditl'; {Dialog Mgr attributes}
  617. dplv (System [7.1.1]) *AS05
  618.      gestaltDisplayMgrVers
  619.      Returns Display Manager version as INTEGER?.
  620.  
  621.      gestaltDisplayMgrVers = 'dplv'; {Display Mgr version}
  622. dply (System [7.1.1]) *AS05
  623.      gestaltDisplayMgrAttr
  624.      Returns information about the Display Manager.
  625.  
  626.      gestaltDisplayMgrAttr = 'dply'; {Display Mgr attributes}
  627.      gestaltDisplayMgrPresent = 0;   {True if Display Mgr is present}
  628.      gestalt???               = 1;
  629. drag (Macintosh Drag and Drop ext [1.0])
  630.      gestaltDragMgrAttr *AD05
  631.      Returns information about the Drag Manager.
  632.  
  633.      gestaltDragMgrAttr         = 'drag'; {Drag Manager attributes}
  634.      gestaltDragMgrPresent      =  0;     {Drag Manager is present}
  635.      gestaltDragMgrFloatingWind =  1;     *AS09
  636.      gestaltPPCDragLibPresent   =  2;     *AS09
  637.      gestalt???                 = 31;
  638. dsig (PowerTalk ext [1.0?], part of System 7.1 Pro)
  639.      gestaltDigitalSignatureVersion
  640.      Returns version of the Digital Signature toolbox as BCD.
  641.  
  642.      gestaltDigitalSignatureVersion = 'dsig'; {Digitial Signature version}
  643. eajt (Easy Access cp [7.0])
  644.      gestaltEasyAccessJTable
  645.      Returns the base address of the Easy Access jump-trap table.
  646.  
  647.      gestaltEasyAccessJTable = 'eajt'; {Easy Access jump-trap table} *M01
  648. easy (Easy Access cp [6.0.4?])
  649.      gestaltEasyAccessAttr
  650.      Returns information about the status of Easy Access.
  651.  
  652.      gestaltEasyAccessAttr   = 'easy'; {Easy Access attributes}
  653.      gestaltEasyAccessOff    = 0;      {Easy Access present but off}
  654.      gestaltEasyAccessOn     = 1;      {Easy Access on}
  655.      gestaltEasyAccessSticky = 2;      {Easy Access "Sticky"}
  656.      gestaltEasyAccessLocked = 3;      {Easy Access "Locked"}
  657.  
  658.      NOTE:
  659.      The values listed above are not returned with System 7 and later.
  660.      Because of a bug different values are returned. This problem is
  661.      acknowledged by Apple, but it is unclear when it will be fixed. They
  662.      know about it since September 1992... (Rene Ros)
  663. edtn (System [7.0])
  664.      (Macintosh Easy Open cp [1.0?])
  665.      gestaltEditionMgrAttr
  666.      Returns information about the Edition Manager.
  667.  
  668.      gestaltEditionMgrAttr             = 'edtn'; {Edition Mgr attributes}
  669.      gestaltEditionMgrPresent          = 0;
  670.      gestaltEditionMgrTranslationAware = 1;      *AD03
  671. evnt (System [7.0]) *AS05
  672.      (Apple Event Manager ext [1.0.1], part of AppleScript Setup)
  673.      gestaltAppleEventsAttr
  674.      Returns information about Apple Events.
  675.  
  676.      gestaltAppleEventsAttr     = 'evnt'; {Apple events attributes}
  677.      gestaltAppleEventsPresent  = 0;      {True if Apple Events present}
  678.                                           *AS05
  679.      gestaltScriptingSupport    = 1;
  680.      gestaltOSLInSystem         = 2;      {OSL is in system so don`t use}
  681.                                           {the one linked}
  682.  
  683.      MOTE:
  684.      Oh oh, what to do with these from PowerPC AEObjects header files
  685.      on ETO 14:
  686.      gestaltObjectSupportLibraryInSystem = 1,
  687.      gestaltObjectSupportLibraryPowerPCSupport = 2
  688. flag (Network Extension ext [System 7.0 *AT02])
  689.      gestaltFlagshipAttr
  690.      Returns information about the Flagship.
  691.  
  692.      gestaltFlagshipAttr       = 'flag'; *M01
  693.      gestaltFlagshipPresent    = 0;      *M01
  694.      gestaltFlagshipRegistered = 1;      *M01
  695. fndr (Finder [7.1.1]) *AS04
  696.      gestaltFinderAttr
  697.      Returns information about the Finder.
  698.  
  699.      gestaltFinderAttr               = 'fndr';
  700.      gestaltFinderDropEvent          = 0;
  701.      gestaltFinderMagicPlacement     = 1;
  702.      gestaltFinderCallsAEProcess     = 2;
  703.      gestaltOSLCompliantFinder       = 3;
  704.      gestaltFinderSupports4GBVolumes = 4;
  705.      gestaltFinderHandlesCFMFailures = 5;
  706.      gestaltFinderHasClippings       = 6;      *AD12
  707. fold (System [7.0])
  708.      gestaltFindFolderAttr
  709.      Returns information about the FindFolder function.
  710.  
  711.      gestaltFindFolderAttr    = 'fold'; {FindFolder attributes}
  712.      gestaltFindFolderPresent = 0;      {FindFolder function available}
  713. font (System [7.0])
  714.      (TrueType INIT ext for System 6)
  715.      gestaltFontMgrAttr
  716.      Returns information about the Font Manager.
  717.  
  718.      gestaltFontMgrAttr      = 'font'; {Font Mgr attributes}
  719.      gestaltOutlineFonts     = 0;
  720.      gestalt???              = 1;      {set with System 7.1 & 7.5}
  721.      gestaltDiskCachedFonts? = 2;      {Disk Cached Fonts available?}
  722.  
  723.      NOTE:
  724.      Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
  725.      with full subroutine names, there is a subroutine called
  726.      'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
  727.      of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
  728. fpu  (System [6.0.4])
  729.      gestaltFPUType
  730.      Returns a value that indicates the FPU-type, if any.
  731.  
  732.      gestaltFPUType  = 'fpu '; {FPU Type}
  733.      gestaltNoFPU    = 0;      {no FPU}
  734.      gestalt68881    = 1;      {68881 FPU}
  735.      gestalt68882    = 2;      {68882 FPU}
  736.      gestalt68040FPU = 3;      {built-in 68040 FPU} *S01
  737.  
  738.      NOTE: See also the 'FPUE' entry with the Third Parties section.
  739. fs   (720K Floppy Disk Formatter ext [1.0a3?],
  740.       part of the Hardware System Update [2.0])
  741.      (Apple Share ext [AS 3.0/SYS 7.0])
  742.      (File System Manager ext [1.2])
  743.      (System [7.0])
  744.      gestaltFSAttr
  745.      Returns information about the file system.
  746.  
  747.      gestaltFSAttr               = 'fs  '; {file-system attributes}
  748.      gestaltFullExtFSDispatching = 0;      {exports HFSDispatch traps}
  749.      gestaltHasFSSpecCalls       = 1;      {supports FSSpec records}
  750.      gestaltHasFileSystemManager = 2;      {has the File System Manager}
  751.                                            *S01
  752.      gestaltFSMDoesDynamicLoad   = 3;      {FSM supports dynamic loads}
  753.                                            *AD12
  754.      gestaltFSSupports4GBVols    = 4;      {FS supports 4 gigabyte volumes}
  755.                                            *AD14
  756.      gestaltFSSupports2TBVols    = 5;      {FS supports 2 terabyte volumes}
  757.                                            *AD14
  758.      gestaltHasExtendedDiskInit  = 6;      {has extended Disk}
  759.                                            {Initialization calls} *AD12
  760.  
  761.      NOTES:
  762.      See 'Reports' chapter (QuickTime section) for more information.
  763. fxfr (System [7.0])
  764.      gestaltFXfrMgrAttr
  765.      Returns information about the File Transfer Manager.
  766.  
  767.      gestaltFXfrMgrAttr        = 'fxfr'; {File Transfer Mgr attributes}
  768.      gestaltFXfrMgrPresent     = 0;      {File Transfer Mgr present}
  769.      gestaltFXfrMgrMultiFile   = 1;      {supports FTSend and FTReceive}
  770.                                          *AS02
  771.      gestaltFXfrMgrErrorString = 2;      {supports FTGetErrorString}
  772.                                          *AS02/S02
  773.  
  774. Apple System Software (G-L)
  775. ---------------------------
  776. gval (GestaltValue Glue code)
  777.      (System [8.0?])
  778.      gestaltValueTable?
  779.      Returns a pointer to a table with the selectors and values managed
  780.      by the GestaltValue code. (Marco Piovanelli)
  781.  
  782.      gestaltValueTable? = 'gval';
  783.  
  784.      WARNING:
  785.      Although this information isn't officially confirmed, it is probably
  786.      correct.
  787.  
  788.      NOTE:
  789.      See 'Reports' chapter (GestaltValue section) for more information.
  790. hdwr (System [6.0.4]) INF
  791.      gestaltHardwareAttr
  792.      Returns information about the hardware configuration of the machine.
  793.  
  794.      gestaltHardwareAttr    = 'hdwr'; {hardware attributes}
  795.      gestaltHasVIA1         =  0;     {VIA 1}
  796.      gestaltHasVIA2         =  1;     {VIA 2}
  797.      gestaltHasRBV          =  2;     {RBV}                           *M01
  798.      gestaltHasASC          =  3;     {ASC}
  799.      gestaltHasSCC          =  4;     {SCC}
  800.      gestaltHasOSS          =  5;     {OSS}                           *M01
  801.      gestaltHasSCSIDMA      =  6;     {53C80 SCSI DMA}                *M01
  802.      gestaltHasSCSI         =  7;     {SCSI}
  803.      gestaltHasSWIMIOP      =  8;     {SWIM IOP}                      *M01
  804.      gestaltHasSCCIOP       =  9;     {SCC IOP}                       *M01
  805.      gestaltHasFitch        = 10;     {Fitch memory Controller}       *M02
  806.      gestaltHasIWM          = 11;     {IWM}                           *M01
  807.      gestaltHasPWM          = 12;     {PWM disk speed buffer}         *M02
  808.      gestaltHasRAMSndBuff   = 13;     {RAM-based sound buffer}        *M02
  809.      gestaltHasVideoDAConv  = 14;     {Video D/A Converter}           *M02
  810.      gestaltHasPGC          = 15;     {PGC (parity control)}          *M02
  811.      gestaltHasRPU?         = 16;     {Random Parity Unit}
  812.      gestaltHasOMC?         = 17;     {Orwell Memory Controller}
  813.      gestaltHasVISARBV?     = 18;     {VISA Ram Based Video}
  814.      gestaltHasSoftPowerOff = 19;     {Software PowerOff (since 7.0?)}*S01
  815.      gestaltHasSonic        = 20;     {Sonic (built-in ethernet)}     *M01
  816.      gestaltHasSCSI961      = 21;     {Int. 53C96 SCSI}               *AT01
  817.      gestaltHasSCSI962      = 22;     {Ext. 53C96 SCSI}               *AT01
  818.      gestaltHasDAFBVideo    = 23;     {DAFB Video}                    *M01
  819.      gestaltHasUniversalROM = 24;     {Universal ROM}                 *AT04
  820.      gestaltHas???          = 27;     {set on PowerMac and C660AV}
  821.      gestaltHas???          = 30;     {set on C660AV, DSP?}
  822.  
  823.      gestaltHasDSP?         = ??;     {Digital Signal Processor}
  824.      gestaltHasEASC?        = ??;     {Enhanced Apple Sound Chip}
  825.      gestaltHasFWSCSI?      = ??;     {Fast and Wide SCSI}
  826.      gestaltHasGraphic?     = ??;     {Apple Graphics coprocessor}
  827.      gestaltHasJaws?        = ??;     {JMC}
  828.      gestaltHasSCSI2?       = ??;     {SCSI 2}
  829.  
  830.      NOTES:
  831.      See for additional information the TN "M.OV.GestaltSysenvirons" (OV 16).
  832.  
  833.      On the Mac IIfx and Quadra 900 the gestaltHasSCC bit always returns 0
  834.      because the SCC is isolated by I/O processors. When the Compatibility
  835.      Switch control panel is used the bit is set. *AD12
  836.  
  837.      The old IM VI listed this selector as an environmental selector but
  838.      IM OS Utilities now lists it as an informational selector.
  839. help (System [7.0])
  840.      gestaltHelpMgrAttr
  841.      Returns information about the Help Manager.
  842.  
  843.      gestaltHelpMgrAttr       = 'help'; {Help Mgr attributes}
  844.      gestaltHelpMgrPresent    =  0;     {Help Mgr present}
  845.      gestaltHelpMgrExtensions =  1;     {Help Mgr extensions installed}
  846.                                         *AS03
  847.      gestaltAppleGuideIsDebug = 30;     {Apple Guide is debugging version}
  848.                                         *AS12
  849.      gestaltAppleGuidePresent = 31;     {Apple Guide is available} *AS12
  850. hscd (High Sierra File Access ext [5.0], part of Apple CD-ROM Software and
  851.       System 7.5) 
  852.      (ISO 9660 File Access ext [1.0-4.0], part of Apple CD-ROM Software)
  853.      gestaltHighSierraFAVersion? *AT03
  854.      Returns High Sierra File Access version in BCD.
  855.  
  856.      gestaltHighSierraFAVersion? = 'hscd'; {High Sierra Fileaccess version}
  857.  
  858.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  859. icmp (QuickTime ext [1.0])
  860.      gestaltCompressionMgr
  861.      Returns Compression Manager version as Integer.
  862.  
  863.      gestaltCompressionMgr = 'icmp'; {determines if Image Compression}
  864.                                      {manager is available} *AS01
  865. icon (System [7.1.2?])
  866.      gestaltIconUtilities
  867.      Returns information about the Icon Utilities routines.
  868.  
  869.      gestaltIconUtilities        = 'icon'; {Icon Utils attributes}
  870.      gestaltIconUtilitiesPresent = 0;
  871.  
  872.      NOTE:
  873.      This selector is suppost to be implemented since System 7.1.2. You
  874.      need to determine if the _IconDispatch A-trap ($AB49) is available
  875.      instead. *AD13/AT01
  876. intd (Powerbook Duo Enabler [1.0])
  877.      (System [7.5])
  878.      (System Enabler 111 [1.0])
  879.      (System Enabler 121 [1.0])
  880.      (System Enabler 131 [1.0])
  881.      (System Enabler 201 [1.0])
  882.      gestaltInternalDiskAttr?
  883.      Returns information about the internal harddisk of portable
  884.      computers?
  885.  
  886.      gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
  887.      gestaltHasInternalDisk?  =  0;     {TRUE if machine has internal HD}
  888.      gestaltDiskSpinning?     =  1;     {TRUE if internal HD is spon up}
  889.      gestalt???               = 24;     {unknown, set on PB180, PB210,}
  890.                                         {PB540}
  891.  
  892.      WARNING:
  893.      This information is from a reliable source. However, is it not
  894.      officially confirmed by Apple and there are no constants defined.
  895.  
  896.      NOTE:
  897.      On a PB Duo 210 (PowerBook Duo Enabler) I haven't seen bit 1 set, even
  898.      when the disk is spinning. It is also reported the bit is clear when
  899.      the disk is spinning and set when down (seen on PB Duo 230).
  900.      (David Lewis, Rene Ros)
  901. iscd (ISO 9660 File Access ext [5.0], part of Apple CD-ROM Software and
  902.       System 7.5)
  903.      gestaltISO9660FAVersion? (not listed)
  904.      Returns ISO 9660 File Access version in BCD?.
  905.  
  906.      gestaltISO9660FAVersion? = 'iscd';
  907.  
  908.      NOTE:
  909.      Versions before 5.0 installed the 'hscd' selector.
  910. kbd  (System [6.0.4])
  911.      gestaltKeyboardType
  912.      Returns a value that indicates the type of keyboard on which the last
  913.      keystroke was seen.
  914.  
  915.      gestaltKeyboardType      = 'kbd '; {keyboard type}
  916.      gestaltMacKbd            =  1;     {Macintosh Keyboard}
  917.      gestaltMacAndPad         =  2;     {Macintosh Keyboard with Pad}
  918.      gestaltMacPlusKbd        =  3;     {Macintosh Plus Keyboard}
  919.      gestaltExtADBKbd         =  4;     {Extended ADB Keyboard}
  920.      gestaltStdADBKbd         =  5;     {Standard ADB Keyboard}
  921.      gestaltPrtblADBKbd       =  6;     {Portable ADB Keyboard}
  922.      gestaltPrtblISOKbd       =  7;     {Portable ISO ADB Keyboard}
  923.      gestaltStdISOADBKbd      =  8;     {Standard ISO ADB Keyboard}
  924.      gestaltExtISOADBKbd      =  9;     {Extended ISO ADB Keyboard}
  925.      gestaltADBKbdII          = 10;     {ADB Keyboard II}
  926.      gestaltADBISOKbdII       = 11;     {ISO ADB Keyboard II}
  927.      gestaltPwrBookADBKbd     = 12;     {PowerBook Keyboard}          *AT01
  928.      gestaltPwrBookISOADBKbd  = 13;     {PowerBook Keyboard (ISO)}    *AT01
  929.      gestaltAppleAdjustKeypad = 14;     {Apple Adjustable Keypad}     *AT01
  930.      gestaltAppleAdjustADBKbd = 15;     {Apple Adjustable Keyboard}
  931.                                         {incl. US, ISO and Japanese}  *AT01
  932.  
  933.      gestalt???               = ??;     {new AppleDesign extended kbd.}
  934.      gestalt???               = 24;     {reported to be returned on PB 5xx}
  935.                                         {other report says these return 11}
  936.  
  937.      ======================================================================
  938.      Combinations of System Global KbdType/ADB Mgr devType and
  939.      gestaltKeyboardType values                                       *AT01
  940.      ======================================================================
  941.      KbdType    gestaltKeyboardType     Gestalt Name
  942.      (hex.)     (decimal)
  943.      ----------------------------------------------------------------------
  944.        $03          1                   gestaltMacKbd
  945.        $13          2                   gestaltMacAndPad
  946.        $0B          3                   gestaltMacPlusKbd
  947.        $02          4                   gestaltExtADBKbd
  948.        $01          5                   gestaltStdADBKbd
  949.        $06          6                   gestaltPrtblADBKbd
  950.        $07          7                   gestaltPrtblISOKbd
  951.        $04          8                   gestaltStdISOADBKbd
  952.        $05          9                   gestaltExtISOADBKbd
  953.        $08         10                   gestaltADBKbdII
  954.        $09         11                   gestaltADBISOKbdII
  955.        $0C         12                   gestaltPwrBookADBKbd
  956.        $0D         13                   gestaltPwrBookISOADBKbd
  957.        $0E         14                   gestaltAppleAdjustKeypad
  958.        $10         15                   gestaltAppleAdjustADBKbd, US
  959.        $11         15                   gestaltAppleAdjustADBKbd, ISO
  960.        $12         15                   gestaltAppleAdjustADBKbd, Japanese
  961.      ----------------------------------------------------------------------
  962.  
  963.      NOTES:
  964.      The Apple Adjustable Keyboard doesn't has its own Gestalt keyboard
  965.      type defined with the some versions of System Software (7.1?). It
  966.      changes a low memory global but this doesn't change the Gestalt
  967.      response. This problem is corrected by the Hardware System Update 2.0
  968.      or later.
  969.  
  970.      The PowerMac 7100/66 doesn't install this selector for some reason.
  971.      Other Macs with Gestalt version 4 do, so it isn't intentional.
  972.  
  973.      Since this selector returns the type of the keyboard last touched
  974.      and because there can be more than one keyboard, MacDTS considers this
  975.      selector to be obsolete. You should use GetADBInfo instead and check
  976.      the orgADBAddr field for a keyboard (0x02) and the devType field
  977.      contains the keyboard device type. It uses the same values as the
  978.      KbdType low memory variable, see the table above. *AD07/AT01
  979. kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *AT03
  980.      gestaltApplePhotoAccessVersion?
  981.      Returns Apple Phote Access version in BCD.
  982.  
  983.      gestaltApplePhotoAccessVersion? = 'kpcd';
  984.  
  985.      NOTE:
  986.      The above is what the documentation says. However it seems to return
  987.      always $FFFFFF7 as response.
  988. lram (System [6.0.4])
  989.      (RAM Doubler [1.0] by Connectix Corporation)
  990.      gestaltLogicalRAMSize
  991.      Returns the amount of logical memory available in bytes.
  992.  
  993.      gestaltLogicalRAMSize = 'lram'; {logical RAM size}
  994. lmem (System [6.0.4])
  995.      gestaltLowMemorySize
  996.      Returns the amount of the low-memory area in bytes.
  997.  
  998.      gestaltLowMemorySize = 'lmem'; {low-memory area size}
  999.  
  1000. Apple System Software (M-R)
  1001. ---------------------------
  1002. mach (System [6.0.4]) INF
  1003.      gestaltMachineType
  1004.      Returns one of the following values, indicating the type of
  1005.      machine.
  1006.  
  1007.      RELEASED
  1008.      gestaltMachineType       = 'mach'; {machine type}
  1009.      gestaltClassic           =   1;    {Macintosh 128K}
  1010.      gestaltMacXL             =   2;    {Macintosh XL}
  1011.      gestaltMac512KE          =   3;    {Macintosh 512KE}
  1012.      gestaltMacPlus           =   4;    {Macintosh Plus}
  1013.      gestaltMacSE             =   5;    {Macintosh SE}
  1014.      gestaltMacII             =   6;    {Macintosh II}
  1015.      gestaltMacIIx            =   7;    {Macintosh IIx}
  1016.      gestaltMacIIcx           =   8;    {Macintosh IIcx}
  1017.      gestaltMacSE030          =   9;    {Macintosh SE/30}
  1018.      gestaltPortable          =  10;    {Macintosh Portable}
  1019.      gestaltMacIIci           =  11;    {Macintosh IIci}
  1020.      gestaltMacIIfx           =  13;    {Macintosh IIfx}
  1021.      gestaltMacClassic        =  17;    {Macintosh Classic}
  1022.      gestaltMacIIsi           =  18;    {Macintosh IIsi}
  1023.      gestaltMacLC             =  19;    {Macintosh LC}
  1024.      gestaltQuadra900         =  20;    {Macintosh Quadra 900}        *AT01
  1025.      gestaltPowerBook170      =  21;    {Macintosh PowerBook 170}     *AT01
  1026.      gestaltQuadra700         =  22;    {Macintosh Quadra 700}        *AT01
  1027.      gestaltClassicII         =  23;    {Macintosh Classic II}        *AT01
  1028.      gestaltPowerBook100      =  24;    {Macintosh PowerBook 100}     *AT01
  1029.      gestaltPowerBook140      =  25;    {Macintosh PowerBook 140}     *AT01
  1030.      gestaltQuadra950         =  26;    {Macintosh Quadra 950}        *AT01
  1031.      gestaltMacLCIII          =  27;    {Macintosh LC III}
  1032.      gestaltPowerBook210      =  29;    {Macintosh PowerBook 210}
  1033.      gestaltMacCentris650     =  30;    {Macintosh Centris 650}
  1034.      gestaltPowerBook230      =  32;    {Macintosh PowerBook 230}
  1035.      gestaltPowerBook180      =  33;    {Macintosh PowerBook 180}
  1036.      gestaltPowerBook160      =  34;    {Macintosh PowerBook 160}
  1037.      gestaltMacQuadra800      =  35;    {Macintosh Quadra 800}
  1038.      gestaltMacQuadra650      =  36;    {Macintosh Quadra 650}        *AT01
  1039.      gestaltMacLCII           =  37;    {Macintosh LC II}
  1040.      gestaltPowerBookDuo250   =  38;    {Macintosh PowerBook Duo 250} *AT01
  1041.      gestaltPowerMac9150      =  39;    {Power Macintosh 9150}        *AT01
  1042.      gestaltMacIIvi           =  44;    {Macintosh IIvi}
  1043.      gestaltPerforma600       =  45;    {Macintosh Performa 600}
  1044.      gestaltMacIIvx           =  48;    {Macintosh IIvx}
  1045.      gestaltMacColorClassic   =  49;    {Macintosh Color Classic}
  1046.      gestaltPowerBook165c     =  50;    {Macintosh PowerBook 165c}
  1047.      gestaltMacCentris610     =  52;    {Macintosh Centris 610}
  1048.      gestaltMacQuadra610      =  53;    {Macintosh Quadra 610}        *AT01
  1049.      gestaltPowerBook145      =  54;    {Macintosh PowerBook 145 & 145b}
  1050.                                         *AT01
  1051.      gestaltMacLC520          =  56;    {Macintosh LC 520}            *AT01
  1052.      gestaltMacCentris660AV   =  60;    {Macintosh Centris 660AV}     *AT01
  1053.      gestaltPerforma460       =  62;    {Macintosh Performa 460}
  1054.      gestaltPowerMac8100_80   =  65;    {Power Macintosh 8100/80}
  1055.      gestaltPowerBook180c     =  71;    {Macintosh PowerBook 180c}    *AT01
  1056.      gestaltPowerBook520_540  =  72;    {Macintosh PowerBook 520, 520c,}
  1057.                                         {540 & 540c}
  1058.                                         {use MaximumProcessorSpeed from}
  1059.                                         {Power Mgr. 25 and 33 resp.}  *AT01
  1060.      gestaltPowerMac6100_60   =  75;    {Power Macintosh 6100/60}
  1061.      gestaltPowerBookDuo270c  =  77;    {Macintosh PowerBook Duo 270c}*AT01
  1062.      gestaltMacQuadra840AV    =  78;    {Macintosh Quadra 840AV}      *AT01
  1063.      gestaltMacLC550          =  80;    {Macintosh LC 550}            *AT01
  1064.      gestaltPowerBook165      =  84;    {Macintosh PowerBook 165}     *AT01
  1065.      gestaltMacTV             =  88;    {Macintosh TV}
  1066.      gestaltMacLC475          =  89;    {Macintosh LC 475}            *AT01
  1067.      gestaltMacLC575          =  92;    {Macintosh LC 575}            *AT01
  1068.      gestaltMacQuadra605      =  94;    {Macintosh Quadra 605}        *AT01
  1069.      gestaltMacLC630          =  98;    {Macintosh LC 630, see below} *AT01
  1070.      gestaltMacQuadra630      =  98;    {Macintosh Quadra 630}        *AT01
  1071.                                         {Q630 has MC68040, LC 630 has}
  1072.                                         {MC68LC040 but can upgrade}
  1073.      gestaltPowerBookDuo280   = 102;    {Macintosh PowerBook Duo 280}
  1074.      gestaltPowerBookDuo280c  = 103;    {Macintosh PowerBook Duo 280c}
  1075.      gestaltPowerMac7100_66   = 112;    {Power Macintosh 7100/66}
  1076.      gestaltPowerBook150      = 115;    {Macintosh PowerBook 150}
  1077.      gestaltPowerMac700?      = 116;    {Quadra 700 upgrade card?}
  1078.      gestaltPowerMac900?      = 117;    {Quadra 900 upgrade card?}
  1079.      gestaltPowerMac950?      = 118;    {Quadra 950 upgrade card?}
  1080.      gestaltPowerMacC610?     = 119;    {Centris 610 upgrade card?}
  1081.      gestaltPowerMacC650?     = 120;    {Centris 650 upgrade card?}
  1082.      gestaltPowerMacQ610?     = 121;    {Quadra 610 upgrade card?}
  1083.      gestaltPowerMacQ650?     = 122;    {Quadra 650 upgrade card?}
  1084.      gestaltPowerMac800?      = 123;    {Quadra 800 upgrade card?}
  1085.  
  1086.      Exceptions with systems prior to System 7.1:
  1087.      gestaltMacLCII           =  19;    {Macintosh LC & LC II}
  1088.                                         {LC has MC68020,LC II has MC68030}
  1089.      gestaltPowerBook145      =  25;    {Macintosh PowerBook 140 & 145}
  1090.                                         {use GetCPUSpeed from}
  1091.                                         {Power Mgr? 16 and 25 resp.}
  1092.  
  1093.      Released unknown
  1094.      At the moment there are no released Macintosh models of which the
  1095.      machine ID is unknown.
  1096.  
  1097.      Relabeled
  1098.      Performa 200             = gestaltClassicII
  1099.      Performa 250             = gestaltMacColorClassic
  1100.                                 (sold in Australia & Britain)
  1101.      Performa 400             = gestaltMacLCII
  1102.      Performa 405             = gestaltMacLCII
  1103.      Performa 410             = gestaltMacLCII
  1104.      Performa 430             = gestaltMacLCII
  1105.      Performa 450             = gestaltMacLCIII
  1106.      Performa 466             = gestaltMacLCIII
  1107.      Performa 467             = gestaltMacLCIII
  1108.      Performa 475             = gestaltMacLC475
  1109.      Performa 476             = gestaltMacLC475
  1110.      Performa 550             = gestaltMacLC550
  1111.      Performa 560MM           = gestaltMacLC550
  1112.      Performa 575             = gestaltMacLC575
  1113.      Performa 577             = gestaltMacLC575
  1114.      Performa 578             = gestaltMacLC575
  1115.      Performa 600             = gestaltMacIIvx
  1116.      Performa 630             = gestaltMac630?
  1117.      Performa 635             = gestaltMac630?
  1118.      Performa 636             = gestaltMac630?
  1119.      Performa 638CDV          = gestaltMac630?
  1120.      PowerMac 6100/60AV       = gestaltPowerMac6100_60
  1121.      PowerMac 7100/66AV       = gestaltPowerMac7100_66
  1122.      PowerMac 8100/80AV       = gestaltPowerMac8100_80
  1123.      PowerMac WGS 6150        = gestaltPowerMac6100_60 ?
  1124.      PowerMac WGS 8150        = gestaltPowerMac8100_80 ?
  1125.      PowerMac WGS 9150        = gestaltPowerMac9100_?? ?
  1126.      Quadra 660AV             = gestaltMacCentris660AV
  1127.      Workgroup Server 60      = gestaltMacCentris610
  1128.      Workgroup Server 80      = gestaltMacQuadra800
  1129.      Workgroup Server 95      = gestaltQuadra950
  1130.      Workgroup Server 95+     = gestaltQuadra950
  1131.  
  1132.      UNRELEASED (RUMOURED / PRERELEASES)
  1133.      gestaltPowerMac8100_60?  =  64;    {Power Macintosh 8100/60}
  1134.      gestaltPowerMac8100_100? =  66;    {Power Macintosh 8100/100 (Nov.94)}
  1135.      gestaltPowerMac6100_66?  = 100;    {Power Macintosh 6100/66 (Nov.94)}
  1136.      gestaltPowerMac6100_80?  = 101;    {Power Macintosh 6100/80}
  1137.      gestaltPowerMac7100_60?  = 111;    {Power Macintosh 7100/60}
  1138.      gestaltPowerMac7100_80?  = 113;    {Power Macintosh 7100/80 (Nov.94)}
  1139.  
  1140.      Unreleased unknown
  1141.      gestaltPomona???         = ???;    {unknown, codename Pomona?}
  1142.      Pomona is probably the codename of a new line of home and business
  1143.      machines scheduled for early 1995, with three models:
  1144.        gestalt???               = ???
  1145.        gestalt???               = ???
  1146.        gestalt???               = ???
  1147.      gestalt???               =  43;    {unknown, pre-rel. Tempest/Cyclone}
  1148.      gestaltAlchemy?          = ???;    {unknown, codename Alchemy}
  1149.      gestaltCatalyst?         = ???;    {unknown, codename Catalyst}
  1150.      gestaltNitro?            = ???;    {unknown, codename Nitro}
  1151.      gestaltPowerBookDuo2300? = ???;    {PowerBook Duo 2300 (or AJ?) with}
  1152.                                         {PPC 603? (May 95)}
  1153.      gestaltPowerBookDuo2300c?= ???;    {PowerBook Duo color (or AJc?) with
  1154.                                         {PPC 603? (May 95)}
  1155.      gestaltPowerBook603?     = ???;    {Macintosh PowerBook with PPC 603?}
  1156.                                         {June 95}
  1157.      gestaltTNTPowerMacsHP?   = ???;    {TNT PowerMac, High Perf.?}
  1158.      gestaltTNTPowerMacsGW?   = ???;    {TNT PowerMac, Graphics Workstation?}
  1159.      gestaltTsunami?          = ???;    {unknown, codename Tsunami}
  1160.  
  1161.      Relabeled
  1162.      Performa 6110CD          = gestaltPowerMac6100_60 ?
  1163.      Performa 6112CD          = gestaltPowerMac6100_60 ?
  1164.      Performa 6115CD          = gestaltPowerMac6100_60 ?
  1165.      Performa 6117CD          = gestaltPowerMac6100_60 ?
  1166.      Performa 6118CD          = gestaltPowerMac6100_60 ?
  1167.  
  1168.      NOTES:
  1169.      The Power Macintosh computers also set the three low bits of a 32-bit
  1170.      register at address $5FFF FFFC to a machine identification code.
  1171.  
  1172.      ======================================================================
  1173.      Power Macintosh register identification codes
  1174.      ======================================================================
  1175.      Machine                     Register bits
  1176.      ----------------------------------------------------------------------
  1177.      Power Macintosh 6100        000
  1178.      Power Macintosh 7100        010
  1179.      Power Macintosh 8100        011
  1180.      ----------------------------------------------------------------------
  1181.  
  1182.      An upgraded Centris 610 doesn't return 119 (Centris 610 upgrade card?)
  1183.      but 75 (PowerMac 6100). (Carl R. Osterwald)
  1184.      With an upgraded Quadra 700 the upgrade card value is returned. The
  1185.      values for the upgrade cards came from the kMachineNameStrID resource
  1186.      from the Power Mac Upgrade Card enabler distributed with System
  1187.      Update 3.0 on disk 2. (Rene Ros)
  1188.  
  1189.      The Performa 600 was originally planned to ship as Macintosh IIvm
  1190.      but the name was changed because users thought 'vm' meant 'Virtual
  1191.      Memory'. MOST system enablers (i.e. 001, 040, 065 & 201) still
  1192.      contain this original name.
  1193.  
  1194.      The Developer Notes (available from APDA, on ftp.apple.com and on the
  1195.      Developer CD-ROM Series) about some PowerBook models (100/140/170)
  1196.      provide incorrect information regarding the machine type returned by
  1197.      the Gestalt Manager.
  1198.  
  1199.      You can use the returned value as an index with GetIndString
  1200.      to get the machine's name. The STR# resource ID is:
  1201.      kMachineNameStrID       = -16395;
  1202.  
  1203.      On Macintosh Performas, the Machine Name STR# resource will always
  1204.      return the string "Macintosh" (not "Macintosh Performa 450" or
  1205.      "Performa 450").  On all other Macintoshes, the string will return
  1206.      the correct name. (Mark Dawson)
  1207.      [But] if you do a dirty install [of System 7.5 or later] (right on top
  1208.      of an existing, pre-7.5 System), your machine type and icon will be
  1209.      preserved. If you do a clean install, you'll get the generic name/icon
  1210.      in the Finder's "About This Macintosh..." dialog. (Tim Swihart)
  1211.      This can be fixed by using the freeware Mac Identifier extension from
  1212.      Flux Software, written by Maurice Volaski. See the 'Related Software'
  1213.      chapter for availability. (Rene Ros)
  1214.      In the future ID's will be reused and the kMachineNameStrID will
  1215.      contain only the text '  Macintosh' (two spaces first) *AT01
  1216.      Why, oh why? (Rene Ros)
  1217.  
  1218.      All system enablers have a STR# resource -16395 (kMachineNameStrID)
  1219.      included to replace the one in the System file. In most cases this
  1220.      resource lists the same Macintosh names as the original one in
  1221.      System 7.1 and adds the names of the machines the enabler is intended
  1222.      for. But some only list the machines the enabler is used with.
  1223.      Therefore, if you want to display the name of a machine which isn't
  1224.      of the current machine type you can't rely on this resource anymore.
  1225.      Using the archive mail server you can obtain a ResEdit file with the
  1226.      complete machine name string resource. The command to use is
  1227.          archive get src/machname-str.sit.hqx
  1228.      I will keep it up-to-date along with the changes in this 'mach' entry.
  1229.      (Rene Ros)
  1230.  
  1231.      (Sources of relabled and unreleased machines:
  1232.       MacFacts Two by J.D.S. Babcock <jdsb@ee.duke.edu>;
  1233.       Duo FAQ by Nicholas C. De Mello <nick@pitt.edu>;
  1234.       MacWEEK magazine;
  1235.       TidBits magazine by Adam Engst & Co.)
  1236. malr (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1237.      gestaltSMPMailerVersion
  1238.      Returns the SMP Mailer version as INTEGER.
  1239.  
  1240.      gestaltSMPMailerVersion = 'malr'; {SMP Mailer version}
  1241. micn (System [6.0.4]) INF
  1242.      gestaltMachineIcon
  1243.      Returns an icon family resource ID for the current type of
  1244.      Macintosh.
  1245.  
  1246.      gestaltMachineIcon = 'micn'; {machine ICON/cicn res ID}
  1247.  
  1248.      NOTE:
  1249.      The icon resource ID returned is based on the gestaltMachineType
  1250.      response which is used as index into a table. This table of
  1251.      resource IDs differs for most System Software versions (and
  1252.      enablers). If you really want to know the icon resource ID of a
  1253.      machine which is not the current machine you have the following
  1254.      options:
  1255.      - Write a GDEF to replace the 'mach' selector, let this GDEF return
  1256.        the original gestaltMachineType unless a certain selector exists.
  1257.        Create this selector with the GestaltValue code and make it loop
  1258.        from 1 to the number of items in the STR# kMachineNameStrID
  1259.        resource, let the custom GDEF return this as the machine type so
  1260.        the gestaltMachineIcon selector will use this to look up the icon
  1261.        resource ID. Then remove the GestaltValue selector and restore the
  1262.        original gestaltMachineType selector.
  1263.      - Get the entrypoint of the gestaltMachineIcon GDEF, jump into the
  1264.        GDEF a few bytes further (and thus skipping the gestalt call using
  1265.        the gestaltMachineType selector), emulate a genuine call to Gestalt
  1266.        by setting the A0 (response, the machineType you want) and
  1267.        D0 (result) registers correct.
  1268.      - Determine the start of the table, which is located in memory before
  1269.        the entrypoint of the gestaltMachineIcon GDEF code, and calculate
  1270.        the offset to the icon resource ID you need. If you want code which
  1271.        does this, you can contact me (Rene Ros) an I will sent you some
  1272.        Pascal source code.
  1273.      (David Greenspon, Michael Hecht and Rene Ros)
  1274. misc (System [6.0.5])
  1275.      gestaltMiscAttr
  1276.      Returns information about miscellaneous pieces of software or
  1277.      hardware.
  1278.  
  1279.      gestaltMiscAttr          = 'misc'; {miscellaneous attributes}
  1280.      gestaltScrollingThrottle = 0;
  1281.      gestaltBootGlobals       = 1;      {Boot Globals} *M02
  1282.      gestaltSquareMenuBar     = 2;
  1283. mixd (System? [7.1.2?])
  1284.      gestaltMixedModeAttr
  1285.      Returns information about the Mixed Mode Manager.
  1286.  
  1287.      gestaltMixedModeAttr = 'mixd'; {Mixed Mode Mgr attributes}
  1288.      gestaltPowerPCAware  = 0;      {True if MMMgr Supports PowerPC}
  1289.  
  1290.      NOTE:
  1291.      IM OS Utilities lists the 'mixd' selector as 'gestaltMixedModeVersion'
  1292.      but I don't believe that... (Rene Ros)
  1293. mmu  (System [6.0.4])
  1294.      gestaltMMUType
  1295.      Returns a value that indicates the type of MMU currently installed,
  1296.      if any.
  1297.  
  1298.      gestaltMMUType  = 'mmu ';  {MMU Type}
  1299.      gestaltNoMMU    = 0;       {no MMU}
  1300.      gestaltAMU      = 1;       {AMU}
  1301.      gestalt68851    = 2;       {68851 MMU}
  1302.      gestalt68030MMU = 3;       {built-in 68030 MMU}
  1303.      gestalt68040MMU = 4;       {68040/68LC040 built-in}           *S01
  1304.      gestaltEMMU1    = 5;       {Emulated MMU type 1, PowerPC MMU} *AS05
  1305. mtcp (MacTCP cp [1.1])
  1306.      gestaltMacTCPAttr? *AD01
  1307.      Returns the version of MacTCP, if opened, as index-value.
  1308.  
  1309.      ====================
  1310.      MacTCP responses
  1311.      ====================
  1312.      Version   Response
  1313.      --------------------
  1314.       1.1         1
  1315.       1.1.1       2
  1316.       2.0.x       3
  1317.      --------------------
  1318.  
  1319.      If MacTCP is not opened a value of 0 is returned.
  1320.      No constants are defined with the documentation.
  1321. nlup (System [7.0])
  1322.      gestaltStdNBPAttr
  1323.      Returns information about the call StandardNBP.
  1324.  
  1325.      gestaltStdNBPAttr    = 'nlup'; {Standard NBP attributes}
  1326.      gestaltStdNBPPresent = 0;
  1327.      gestalt???           = 1;      {unknown, System 7.5}
  1328. nmgr (System [6.0.5])
  1329.      gestaltNotificationMgrAttr
  1330.      Returns information about the Notification Manager.
  1331.  
  1332.      gestaltNotificationMgrAttr = 'nmgr'; {Notification Mgr attributes}
  1333.      gestaltNotificationPresent = 0;
  1334. nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
  1335.      gestaltNuBusSlotCount
  1336.      Returns count of NuBus slots.
  1337.  
  1338.      gestaltNuBusSlotCount = 'nubs'; {NuBus slot count}
  1339. ocet (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
  1340.      gestaltOCEToolboxVersion
  1341.      Returns the versions of the S&F Server and the OCE Toolbox as BCD.
  1342.  
  1343.      gestaltOCEToolboxVersion = 'ocet'; {OCE Toolbox version}
  1344.      gestaltOCETB             = $0100;  {current OCE Toolbox version 1.0}
  1345.      gestaltSFServer          = $0100;  {current S&F Server version 1.0}
  1346.  
  1347.      NOTE:
  1348.      The high order word will represent the S&F Server version number, and
  1349.      the low order the OCE Toolbox version number both as BCD.
  1350.      These will be zero until the component is up and running.
  1351. oceu (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
  1352.      gestaltOCEToolboxAttr
  1353.      Returns information about the Open Colloboration Environment Toolbox.
  1354.  
  1355.      gestaltOCEToolboxAttr       = 'oceu'; {OCE Toolbox attributes}
  1356.      gestaltOCETBPresent         = $1;     {OCE toolbox is present,}
  1357.                                            {not running}
  1358.      gestaltOCETBAvailable       = $2;     {OCE toolbox is running and}
  1359.                                            {available}
  1360.      gestaltOCESFServerAvailable = $4;     {S&F Server is running and}
  1361.                                            {available}
  1362.  
  1363.      NOTE:
  1364.      Any (future) remaining OCE attributes may not be established
  1365.      correctly until the attribute gestaltOCETBAvailable is set.
  1366. os   (System [6.0.4, 7.0 and later])
  1367.      (Process Manager INIT ext [???], part of System 7.1 Pro ? and
  1368.                                       System 7.5 ?)
  1369.      gestaltOSAttr
  1370.      Returns general information about the Operating System.
  1371.  
  1372.      gestaltOSAttr               = 'os  '; {O/S attributes}
  1373.      gestaltSysZoneGrowable      =  0;
  1374.      gestaltLaunchCanReturn      =  1;
  1375.      gestaltLaunchFullFileSpec   =  2;
  1376.      gestaltLaunchControl        =  3;
  1377.      gestaltTempMemSupport       =  4;
  1378.      gestaltRealTempMemory       =  5;
  1379.      gestaltTempMemTracked       =  6;
  1380.      gestaltIPCSupport           =  7;
  1381.      gestaltSysDebuggerSupport   =  8;
  1382.      gestaltSkiaGlobalsSwitched  =  9;     *AS05
  1383.      gestaltBgndMouseDownSupport = 10;     *AS04
  1384.      gestalt???                  = 11;     {on PowerPC, Modern Mem. Mgr?}
  1385.      gestalt???                  = 13;     {unknown, System 7.5}
  1386.      gestalt???                  = 14;     {unknown, System 7.5}
  1387.  
  1388.      NOTES:
  1389.      See the Process Manager chapter in IM Processes for more information
  1390.      about the launch control features. And the Memory Manager chapter in
  1391.      IM Memory about the memory features.
  1392.  
  1393.      The header file which lists the gestaltSkiaGlobalsSwitched bit says
  1394.      this:
  1395.      /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/
  1396.      
  1397.      "Skia" is the code name for QuickDraw GX (MacsBug uses it for trap
  1398.      $A832, which is the main QuickDraw GX trap).
  1399.      (Lawrence D'Oliveiro, Anonymous)
  1400. ostt (System [6.0.8?])
  1401.      gestaltOSTable
  1402.      Returns the base address of the Operating System trap table.
  1403.  
  1404.      gestaltOSTable = 'ostt'; {O/S trap table base}
  1405. osyv (sysvINIT ext [???] by T. Tanaka, Apple Computer Japan Inc.) INF
  1406.      gestaltOldSystemVersion?
  1407.      Returns the version of the system file as BCD which was returned
  1408.      before sysvINIT replaced the gestalt definition with a corrected one.
  1409.  
  1410.      gestaltOldSystemVersion? = 'osyv';
  1411.  
  1412.      NOTE:
  1413.      Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
  1414.      available on Developer CD-ROM Series) replaces the standard 'sysv'
  1415.      Gestalt Definition (GDEF) with a corrected one to return $0x0607 and
  1416.      installs the 'osyv' selector which uses the replaced gestalt
  1417.      definition. *M03
  1418. pcxg (System? [???]) *AS04/AS05
  1419.      gestaltPCXAttr
  1420.      Returns information about PC Exchange.
  1421.  
  1422.      gestaltPCXAttr            = 'pcxg'; {PC Exchange attributes}
  1423.      gestaltPCXHas8and16BitFAT = 0;      {PC Exchange supports both 8 and}
  1424.                                          {16 bit FATs}
  1425.      gestaltPCXHasProDOS       = 1;      {PC Exchange supports ProDOS}
  1426. pgsz (System [6.0.4])
  1427.      (RAM Doubler [1.0] by Connectix Corporation)
  1428.      gestaltLogicalPageSize
  1429.      Returns the logical page size in bytes.
  1430.  
  1431.      gestaltLogicalPageSize = 'pgsz'; {logical page size}
  1432.  
  1433.      NOTE:
  1434.      The value is unknown on 68000 machines, Gestalt will return an error.
  1435. pop! (System [7.0])
  1436.      gestaltPopupAttr
  1437.      Returns information about the pop-up control definition.
  1438.      
  1439.      gestaltPopupAttr    = 'pop!'; {pop-up CDEF attributes}
  1440.      gestaltPopupPresent = 0;      {pop-up CDEF available}
  1441. powr (System [6.0.4])
  1442.      gestaltPowerMgrAttr
  1443.      Returns information about the Power Manager, if present.
  1444.  
  1445.      gestaltPowerMgrAttr       = 'powr'; {Power Mgr attributes}
  1446.      gestaltPMgrExists         = 0;      {Power Mgr is present}
  1447.      gestaltPMgrCPUIdle        = 1;      {CPU can idle}
  1448.      gestaltPMgrSCC            = 2;      {can stop SCC clock}
  1449.      gestaltPMgrSound          = 3;      {can shut off sound circuits}
  1450.      gestaltPMgrDispatchExists = 4;      {dispatch routines are present}
  1451. ppc  (System [7.0])
  1452.      gestaltPPCToolboxAttr
  1453.      Returns information about the capabilities of the PPC Toolbox.
  1454.  
  1455.      gestaltPPCToolboxAttr             = 'ppc ';  {PPC Toolbox attributes}
  1456.      gestaltPPCToolboxPresent          = $0x0000; {Requires PPCInit to be}
  1457.                                                   {called}
  1458.      gestaltPPCSupportsIncoming        = $0x0001; {Deny incoming net}
  1459.                                                   {requests}
  1460.      gestaltPPCSupportsOutGoing        = $0x0002; {Deny outgoing net}
  1461.                                                   {requests}
  1462.      gestaltPPCSupportsRealTime        = $0x1000; {Supports real-time}
  1463.                                                   {delivery}
  1464.      gestaltPPCSupportsStoreAndForward = $0x2000; {Supports store and}
  1465.                                                   {forward delivery}
  1466.      gestaltPPCSupportsDontCare        = $0x4000; {Supports specification}
  1467.                                                   {of Don't care}
  1468.  
  1469.      NOTE:
  1470.      The first thing that is confusing is that, unlike other selectors
  1471.      returning attributes, the responses are not bit values, but bit masks.
  1472.      This means you simply AND the value with the response to test the bit.
  1473.      The second thing that is confusing is how to interpret
  1474.           gestaltPPCToolboxPresent = $0x0000.
  1475.      What this means is that if the PPC toolbox is present, but has not
  1476.      been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
  1477.      returns $0x0000. In reality, PPCInit gets called by the Process
  1478.      Manager before any applications get launched, so no applications will
  1479.      actually see this response. (Dave Radcliffe)
  1480. proc (System [6.0.4])
  1481.      gestaltProcessorType
  1482.      Returns a value that indicates the type of processor that is
  1483.      currently running (or emulated on Power Macs or with MAE).
  1484.  
  1485.      gestaltProcessorType = 'proc'; {processor type}
  1486.      gestalt68000         = 1;      {MC68000}
  1487.      gestalt68010         = 2;      {MC68010}
  1488.      gestalt68020         = 3;      {MC68020}
  1489.      gestalt68030         = 4;      {MC68030}
  1490.      gestalt68040         = 5;      {MC68040} *S01
  1491.  
  1492.      NOTES:
  1493.      The 68LC040 responds as type gestalt68040 but doesn't has an FPU. The
  1494.      user can swap out the 68LC040 and put in a real 68040 with FPU, so
  1495.      just checking the machineType or the processorType isn't enough.
  1496.      (Dave Radcliffe)
  1497.  
  1498.      On a Power Macintosh the Gestalt function returns, although a 68LC040
  1499.      is emulated, the value gestalt68020. This return value is intended to
  1500.      highlight the two ways in which the 68LC040 Emulator more closely
  1501.      resembles a 68020 processor than a 68040 processor. *AD11
  1502. prpv (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1503.      gestaltSDPPromptVersion
  1504.      Returns the SDP Prompt version as INTEGER.
  1505.  
  1506.      gestaltSDPPromptVersion = 'prpv'; {SDP Prompt version}
  1507. prty (System [6.0.4])
  1508.      gestaltParityAttr
  1509.      Returns information about the parity-checking abilities of the
  1510.      machine.
  1511.  
  1512.      gestaltParityAttr          = 'prty'; {parity attributes}
  1513.      gestaltHasParityCapability = 0;
  1514.      gestaltParityEnabled       = 1;
  1515. qd   (System [6.0.4])
  1516.      gestaltQuickDrawVersion
  1517.      Returns the version of QuickDraw currently present as 2-byte value.
  1518.  
  1519.      gestaltQuickDrawVersion = 'qd  '; {QuickDraw version}
  1520.      gestaltOriginalQD       = $000;   {obsolete?}
  1521.      gestaltOriginalQD1      = $001;   {obsolete?}
  1522.      gestalt8BitQD           = $100;
  1523.      gestalt32BitQD          = $200;
  1524.      gestalt32BitQD11        = $210;
  1525.      gestalt32BitQD12        = $220;
  1526.      gestalt32BitQD13        = $230;
  1527.      gestalt32BitQD135?      = $235;   {with System 7.1.2, ROM = 3072K?}
  1528.  
  1529.      ======================================================================
  1530.      Possible Combinations of ROM Versions and System Software Versions
  1531.      ======================================================================
  1532.      ROM Class             System Version         Gestalt Value
  1533.      ----------------------------------------------------------------------
  1534.      Black-and-white class <  7.0                 gestaltOriginalQD
  1535.      (ROM < 256K)          >= 7.0                 gestaltOriginalQD and
  1536.                                               gestaltSystemVersion >= $0700
  1537.  
  1538.      Color QD class        <  7.0, no INITs       gestalt8BitQD
  1539.      (ROM = 256K)          6.0.3/6.0.4 and        gestalt32BitQD
  1540.                            32-Bit QD INIT 1.0
  1541.                            6.0.5-6.0.8 and        gestalt32BitQD12
  1542.                            32-Bit QD INIT 1.2
  1543.                            >= 7.0                 gestalt32BitQD13
  1544.  
  1545.      ci class              6.0.4                  gestalt32BitQD + 1
  1546.      (256K < ROM >= 3072K) 6.0.5-6.0.8            gestalt32BitQD12
  1547.                            >= 7.0                 gestalt32BitQD13
  1548.      PPC class?            7.1.2?                 gestalt32BitQD135?
  1549.      (ROM = 3072K)
  1550.      ----------------------------------------------------------------------
  1551.      (Original source: Develop 14, June 1993, p. 56)
  1552.  
  1553.      NOTE:
  1554.      gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
  1555.      $0x0201 as response value and doesn't has a defined constant.
  1556.      Another QuickDraw version is System 7 with a black-and-white class
  1557.      machine.
  1558. qdrw (System [7.0])
  1559.      gestaltQuickDrawFeaturesAttr
  1560.  
  1561.      gestaltQuickDrawFeaturesAttr = 'qdrw'; {QuickDraw attributes} *S01
  1562.      gestaltHasColor              = 0;      *S01
  1563.      gestaltHasDeepGWorlds        = 1;      *S01
  1564.      gestaltHasDirectPixMaps      = 2;      *S01
  1565.      gestaltHasGrayishTextOr      = 3;      *S01
  1566.      gestaltSupportsMirroring     = 4;      *AD12
  1567.  
  1568.      NOTES:
  1569.      There is a bug in the 'qdrw' selector that causes it to report that
  1570.      Color QuickDraw is always present, even on machines that don't support
  1571.      it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
  1572.      Use SysEnvirons instead or test for the QD version ('qd  ') being
  1573.      8-bit QD or later.
  1574.  
  1575.      IM OS Utilities lists this selector as 'gestaltQuickDrawFeatures'.
  1576. qtim (QuickTime ext [1.0])
  1577.      gestaltQuickTime
  1578.      Returns QuickTime version as NumVersion.
  1579.  
  1580.      gestaltQuickTime = 'qtim'; {Movie Toolbox Availability}
  1581.  
  1582.      NOTES:
  1583.      The returned version is obtained from 'vers' resource ID# 1.
  1584.  
  1585.      IM OS Utilities lists this selector as 'gestaltQuickTimeVersion'.
  1586.  
  1587.      See 'Reports' chapter (QuickTime section) for more information.
  1588. qtrs (QuickTime PowerPlug ext [1.0?])
  1589.      gestaltQuickTimeFeatures *AS06
  1590.      
  1591.      gestaltQuickTimeFeatures      = 'qtrs'; {QT Features attributes}
  1592.      gestaltPPCQuickTimeLibPresent = 0,         {PowerPC QT glue library is}
  1593.                                              {present}
  1594.  
  1595.      NOTE:
  1596.      The gestaltPPCQuickTimeLibPresent bit indicates that the native
  1597.      QuickTime interface library is available and can be called by native
  1598.      PowerPC applications. (Dave Radcliffe)
  1599. ram  (System [6.0.4])
  1600.      (RAM Doubler [1.0] by Connectix Corporation)
  1601.      gestaltPhysicalRAMSize
  1602.      Returns the number of bytes of the physical RAM currently installed.
  1603.  
  1604.      gestaltPhysicalRAMSize = 'ram '; {physical RAM}
  1605. rbv  (System [6.0.4, discontinued?]) *AS04
  1606.      gestaltRBVAddr
  1607.      Returns the address of the RBV?
  1608.  
  1609.      gestaltRBVAddr = 'rbv '; {RBV address}
  1610. rom  (System [6.0.4]) INF
  1611.      gestaltROMSize
  1612.      Returns the size of the installed ROM in bytes.
  1613.  
  1614.      gestaltROMSize = 'rom '; {ROM size}
  1615. romv (System [6.0.4]) INF
  1616.      gestaltROMVersion
  1617.      Returns the version number of the installed ROM.
  1618.  
  1619.      gestaltROMVersion = romv'; {ROM version}
  1620. rsrc (System [should work since 7.0?])
  1621.      gestaltResourceMgrAttr
  1622.      Returns information about the Resource Manager.
  1623.  
  1624.      gestaltResourceMgrAttr = 'rsrc'; {Resource Mgr attributes}
  1625.      gestaltPartialRsrcs    = 0;
  1626.      gestalt???             = 1;      {unknown}
  1627.  
  1628.      NOTE:
  1629.      Under System 7, bit 0 that tells if you have partial resource support
  1630.      doesn't work right. The selector is undefined under System 7.0 and
  1631.      7.0.1 even though the partial resource calls are available. This has
  1632.      been acknowledged by Apple.
  1633.      (Michael Hecht, Quinn)
  1634. rtmr (System? [7.1.1?])
  1635.      gestaltRealtimeMgrAttr
  1636.      Returns information about the Realtime Manager.
  1637.  
  1638.      gestaltRealtimeMgrAttr    = 'rtmr'; {Realtime Mgr attributes}
  1639.      gestaltRealtimeMgrPresent = 0;      {Realtime Mgr is present}
  1640.  
  1641.      NOTE:
  1642.      If the RealTime Mgr is present this means the ARTA routines are
  1643.      available to determine if and how many DSPs are installed.
  1644.      (Zalman Stern)
  1645.  
  1646. Apple System Software (S-Z)
  1647. ---------------------------
  1648. sccr (System [6.0.4, discontinued]) *AS04
  1649.      gestaltSCCReadAddr
  1650.      Returns the address of SCC read ports.
  1651.  
  1652.      gestaltSCCReadAddr = 'sccr'; {SCC read ports address}
  1653. sccw (System [6.0.4, discontinued]) *AS04
  1654.      gestaltSCCWriteAddr
  1655.      Returns the address of SCC write ports.
  1656.  
  1657.      gestaltSCCWriteAddr = 'sccw'; {SCC write ports address}
  1658. scr# (System [6.0.4])
  1659.      gestaltScriptCount
  1660.      Returns the number of script systems currently active.
  1661.  
  1662.      gestaltScriptCount = 'scr#'; {number of active scripts}
  1663. scra (Macintosh Easy Open cp [1.0]) *AD03
  1664.      gestaltScrapMgrAttr
  1665.      Returns information about the Scrap Manager.
  1666.  
  1667.      gestaltScrapMgrAttr             = 'scra'; {Scrap Mgr attributes}
  1668.      gestaltScrapMgrTranslationAware = 0;
  1669.      gestaltTranslationMgrHintOrder  = 1;      *AS04
  1670. scri (System [6.0.4])
  1671.      gestaltScriptMgrVersion
  1672.      Returns the version number of the Script Manager as BCD.
  1673.  
  1674.      gestaltScriptMgrVersion = 'scri'; {Script Mgr version}
  1675.  
  1676.      ======================================================================
  1677.      Version numbers for the Script Manager
  1678.      ======================================================================
  1679.      System Version       Script Mgr           Script Mgr          Version
  1680.                           (older ROMs)+        (newer ROMs)        format
  1681.      ----------------------------------------------------------------------
  1682.      6.0.3 and earlier    <= $20F              N.A.                binary
  1683.      6.0.4 Roman          $211                 $215                  "
  1684.      6.0.4 non-Roman      $212                 $216                  "
  1685.      6.0.5                $213                 $217 (=2.23)          "
  1686.  
  1687.      6.0.7                $230                 $231                BCD
  1688.      J-6.0.7.1            $230                 $231                 "
  1689.      6.0.8                $230                 $231                 "
  1690.      6.1 non-Roman        $240                 $241                 "
  1691.      7.0                  $700                 $700                 "
  1692.      7.0.1 Roman          $701                 $701                 "
  1693.      7.0.1 non-Roman      $701                 $701                 "
  1694.      7.1                  $710                 $710                 "
  1695.      7.5                  $720                 $720                 "
  1696.  
  1697.      + Plus,SE,II,IIx,IIcx,SE/30,Classic
  1698.      ----------------------------------------------------------------------
  1699.      (Original source: Inside Macintosh Text, p. 6-9)
  1700.  
  1701. scsi (System [7.1.2?])
  1702.      (SCSI Manager ext [4.3])
  1703.      gestaltSCSI *AT07
  1704.      Returns information about the SCSI Manager.
  1705.  
  1706.      gestaltSCSI           = 'scsi'; {SCSI Manager attributes}
  1707.      gestaltAsyncSCSI      = 0;      {Supports asynchronous SCSI}
  1708.      gestaltAsyncSCSIINROM = 1;      {Async SCSI is in ROM}
  1709.                                      {(available for booting)}
  1710.      gestaltSCSISlotBoot   = 2;      {ROM supports Slot-style PRAM for}
  1711.                                      {SCSI boots}
  1712. sdev (Control Strip cp [1.0], part of PowerBook Utilities)
  1713.      gestaltControlStripAttr
  1714.      Returns information about the Control Strip software.
  1715.  
  1716.      gestaltControlStripAttr         = 'sdev';
  1717.      gestaltControlStripExists       = 0;     {TRUE = control strip is}
  1718.                                               {installed}
  1719.      gestaltControlStripVersionFixed = 1;     {version of Control Strip}
  1720.                                               {installs 'csvr' selector}
  1721.                                               {instead of 'sdvr' ?} *AS11
  1722.  
  1723.      NOTE:
  1724.      Control Strip displays a row with icons and popup menus to quickly
  1725.      change settings on portable macs, i.e. AppleTalk and the sound volume.
  1726. sdvr (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1727.      gestaltSDPStandardDirectoryVersion
  1728.      Returns the SDP Standard Directory version as INTEGER.
  1729.  
  1730.      gestaltSDPStandardDirectoryVersion = 'sdvr'; {SDP Standard Directory}
  1731.                                                   {version}
  1732.  
  1733.      WARNING:
  1734.      The same selector code is used by the Control Strip 1.0 control panel.
  1735.      See the gestaltControlStripVersion ('csvr') selector entry above.
  1736. ser  (System [6.0.8?])
  1737.      gestaltSerialAttr
  1738.      Returns information about the serial hardware of the machine.
  1739.  
  1740.      gestaltSerialAttr  = 'ser '; {serial hardware attributes}
  1741.      gestaltGPIaToDCDa  = 0;
  1742.      gestaltGPIaToRTxCa = 1;
  1743.      gestaltGPIaToDCDb  = 2;
  1744. slot (System [6.0.4, 6.0.5, discontinued])
  1745.      gestaltSlotAttr
  1746.      Returns information about the Slot Manager.
  1747.  
  1748.      gestaltSlotAttr            = 'slot'; {Slot Mgr attributes}
  1749.      gestaltSlotMgrExists       = 0;
  1750.      gestaltNuBusPresent        = 1;
  1751.      gestaltSESlotPresent       = 2;
  1752.      gestaltSE30SlotPresent     = 3;
  1753.      gestaltPortableSlotPresent = 4;
  1754. slt1 (System [6.0.4, 6.0.5, discontinued])
  1755.      gestaltFirstSlotNumber
  1756.      Returns first slot number.
  1757.  
  1758.      gestaltFirstSlotNumber = 'slt1'; {First Slot number}
  1759. sltc (System [6.0.8?])
  1760.      gestaltNuBusConnectors
  1761.      Returns information about the NuBus slot connector locations. The
  1762.      value returned is a bitmap. If bits 9 to E are set, there are six
  1763.      slots present with locations 9 to E.
  1764.  
  1765.      gestaltNuBusConnectors = 'sltc'; {NuBus connector bitmap}
  1766.  
  1767.      NOTE:
  1768.      This selector does not return information about the Macintosh IIsi
  1769.      slot.
  1770. snd  (System [6.0.4])
  1771.      gestaltSoundAttr
  1772.      Returns information about the sound capabilities of the machine.
  1773.  
  1774.      gestaltSoundAttr           = 'snd '; {sound attributes}
  1775.      gestaltStereoCapability    =  0;     {can play stereo sounds}
  1776.      gestaltStereoMixing        =  1;     {mixes channels into single}
  1777.                                           {signal}
  1778.      gestaltSoundReserved       =  2;
  1779.      gestaltSoundIOMgrPresent   =  3;     {new sound input routines avail.}
  1780.      gestaltBuiltInSoundInput   =  4;     {built-in sound input device
  1781.                                           {available}
  1782.      gestaltHasSoundInputDevice =  5;     {some sound input device avail.}
  1783.      gestaltPlayAndRecord       =  6;     {built-in hardware can play and}
  1784.                                           {record simultaneously}
  1785.                                           *AS03/AS04
  1786.      gestalt16BitSoundIO        =  7;     {sound hardware can play and}
  1787.                                           {record 16-bit samples}     *AS04
  1788.      gestaltStereoInput         =  8;     {sound hardware can record}
  1789.                                           {stereo} *AS04
  1790.      gestaltLineLevelInput      =  9;     {sound input port requires}
  1791.                                           {line level} *AS04
  1792.      gestaltSndPlayDoubleBuffer = 10;     {play from disk available}  *AS04
  1793.      gestaltMultiChannels       = 11;     {multiple channel support}
  1794.                                           *AS03/AS04
  1795.      gestalt16BitAudioSupport   = 12;     {16 bit audio data supported}
  1796.                                           *AS04
  1797.  
  1798.      NOTES:
  1799.      Bit 7 through 12 are not defined for versions of the Sound Manager
  1800.      prior to version 3.0.
  1801.  
  1802.      If the gestaltSndPlayDoubleBuffer flag is not set you can check for
  1803.      the gestaltHasASC flag with the gestaltHardwareAttr selector. If this
  1804.      is true both SndPlayDoubleBuffer and SndStartFilePlay are present.
  1805.      *AD06
  1806. snhw (System [7.5])
  1807.      (Sound Manager ext [3.0])
  1808.      gestaltSoundHardware
  1809.      Returns type of hardware used for sound?
  1810.  
  1811.      gestaltSoundHardware = 'snhw'; {Sound Hardware}
  1812.      gestaltASC           = 'asc '; {ASC}
  1813.      gestaltDSP           = 'dsp '; {DSP}
  1814.      gestaltClassicSound  = 'clas'; {Classic Mac?}
  1815.      gestaltAWAC?         = 'awac'; {returned on PowerMac}
  1816.      gestaltSing?         = 'sing'; {returned on PB 540c}
  1817. spsl (PowerTalk ext [1.0?], part of System 7.1 Pro)
  1818.      gestaltSMPSPSendLetterVersion
  1819.      Returns the SMP SendLetter version as INTEGER.
  1820.  
  1821.      gestaltSMPSPSendLetterVersion = 'spsl'; {SMP Sendletter version}
  1822. stdf (System [7.0])
  1823.      (Macintosh Easy Open cp [1.0?])
  1824.      gestaltStandardFileAttr
  1825.      Returns information about the Standard File Package.
  1826.  
  1827.      gestaltStandardFileAttr                       = 'stdf';
  1828.                                                  {Standard File attributes}
  1829.      gestaltStandardFile58                         = 0;
  1830.                           {StandardPutFile, StandardGetFile, CustomPutFile}
  1831.                                          {and CustomGetFile are available.}
  1832.      gestaltStandardFileTranslationAware           = 1; *AD03/AS04
  1833.      gestaltStandardFileHasColorIcons              = 2; *AD03/AS04/AS05
  1834.      gestaltStandardFileUseGenericIcons            = 3;
  1835.                 {force the LDEF to use only the system generic icons} *AT06
  1836.      gestaltStandardFileHasDynamicVolumeAllocation = 4;
  1837.                                       {supports more than 20 volumes} *AT06
  1838. sysa (System [7.1.2?]) *AS04
  1839.      gestaltSysArchitecture
  1840.      Returns one of the following values, indicating the type of
  1841.      architecture on which the application is currently running.
  1842.  
  1843.      gestaltSysArchitecture = 'sysa'; {System Architecture type}
  1844.      gestalt68k             = 1;
  1845.      gestaltPowerPC         = 2;
  1846. sysv (System [6.0.4]) INF
  1847.      gestaltSystemVersion
  1848.      Returns the version number of the currently active System file as BCD.
  1849.  
  1850.      gestaltSystemVersion = 'sysv'; {System file version}
  1851.  
  1852.      NOTES:
  1853.      Is it correct system 6.0.8 returns $0x0607? Can you determine if it is
  1854.      actually 6.0.8 in another way?
  1855.  
  1856.      In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
  1857.      versions return $0606. See the 'osyv' selector.
  1858.      System J-6.0.7.1 returns $0609
  1859.  
  1860.      System 7.1.2 (for Power Macintosh) apparently returns an incorrect
  1861.      version number ($0710) when in 68K mode with a PPC Upgrade card.
  1862.      (Rick Gansler)
  1863.  
  1864.      There are some system versions (like International System 6.0.8.1 or
  1865.      7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
  1866.      7.0.1.
  1867. tabl (System [6.0.4])
  1868.      gestaltSelectorTable?
  1869.      Returns a handle to the Gestalt selector table itself.
  1870.  
  1871.      gestaltSelectorTable? = 'tabl'; {Gestalt Table address}
  1872.  
  1873.      WARNING:
  1874.      Although this information isn't officially confirmed, it is probably
  1875.      correct.
  1876.  
  1877.      NOTE:
  1878.      The Gestalt selector table is kept in a resizable block in the system
  1879.      heap. The last item in the table is a dummy entry (INVALID), marked by
  1880.      a selector OSType(MaxLongInt). (Marco Piovanelli, he also has some
  1881.      snippet Pascal code to list all selectors)
  1882. tbtt (System [6.0.8])
  1883.      gestaltToolboxTable
  1884.      Returns the base address of the Toolbox trap table.
  1885.  
  1886.      gestaltToolboxTable = 'tbtt'; {Toolbox trap table base}
  1887. te   (System [6.0.5])
  1888.      gestaltTextEditVersion
  1889.      Returns a value that indicates which version of TextEdit is present.
  1890.  
  1891.      gestaltTextEditVersion = 'te  '; {TextEdit version}
  1892.      gestaltTE1             = 1;
  1893.      gestaltTE2             = 2;
  1894.      gestaltTE3             = 3;
  1895.      gestaltTE4             = 4;
  1896.      gestaltTE5             = 5;
  1897.  
  1898.      ======================================================================
  1899.      Version numbers for TextEdit
  1900.      ======================================================================
  1901.      Returned value       New Features           System software   Hardware
  1902.      ----------------------------------------------------------------------
  1903.      gestaltUndefSelector Multistyled TE         before 6.0.4      all
  1904.      gestaltTE1                                  6.0.4 Roman       IIci
  1905.      gestaltTE2           New width              6.0.4 non-Roman   IIci
  1906.                           measurement hook
  1907.                           Script Mgr compatible
  1908.      gestaltTE3                                  6.0.4 non-Roman   non-IIci
  1909.      gestaltTE4           TEFeatureFlag          6.0.5             all
  1910.      gestaltTE5           Text width             7.0               all
  1911.                           measurement hook
  1912.      ----------------------------------------------------------------------
  1913.      (Source: Inside Macintosh Text, p.2-23)
  1914. teat (Macintosh Drag and Drop ext [1.0])
  1915.      gestaltTEAttr *AD05
  1916.      Returns information about the functions and capabilities of TextEdit.
  1917.  
  1918.      gestaltTEAttr            = 'teat'; {TextEdit attributes}
  1919.      gestaltTEHasGetHiliteRgn = 0;      {TEGetHiliteRgn present}
  1920. term (System [7.1])
  1921.      gestaltTermMgrAttr
  1922.      Returns information about the Terminal Manager.
  1923.  
  1924.      gestaltTermMgrAttr        = 'term'; {Terminal Mgr attributes}
  1925.      gestaltTermMgrPresent     = 0;      {Terminal Mgr is present}
  1926.      gestaltTermMgrErrorString = 2;      *AS04
  1927. thds (Thread Manager ext [1.1]) *AD04
  1928.      (QuickDraw GX ext [1.0?])
  1929.      gestaltThreadAttr
  1930.      Returns information about the Thread Manager.
  1931.  
  1932.      gestaltThreadAttr            = 'thds'; {Thread Manager attributes}
  1933.      gestaltThreadsPresent        = 0;      {bit true if Threads present}
  1934.      gestaltSpecificMatchSupport  = 1;      {bit true if â€˜exact match’}
  1935.                                             {API supported}
  1936.      gestaltThreadsLibraryPresent = 2;      {bit true if ThreadsLib is}
  1937.                                             {present}
  1938.      gestalt???                   = 4;      {unknown}
  1939.      
  1940.      NOTE:
  1941.      IM OS Utilities lists this selector as 'gestaltThreadMgrAttr'.
  1942. tmgr (System [6.0.4])
  1943.      gestaltTimeMgrVersion
  1944.      Returns a value that indicates the version of the Time Manager.
  1945.  
  1946.      gestaltTimeMgrVersion  = 'tmgr'; {Time Mgr version}
  1947.      gestaltStandardTimeMgr = 1;      {Standard Time Mgr}
  1948.      gestaltRevisedTimeMgr  = 2;      {Revised Time Mgr}
  1949.      gestaltExtendedTimeMgr = 3;      {Extended Time Mgr}
  1950. tsmv (System [7.1])
  1951.      gestaltTSMgrVersion *AT05
  1952.      Returns Text Services Manager version in BCD.
  1953.  
  1954.      gestaltTSMgrVersion = 'tsmv'; {Text Services Mgr version}
  1955. ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *AT03
  1956.      gestaltForeignFAVersion?
  1957.      Returns Foreign File Access version in BCD.
  1958.  
  1959.      gestaltForeignFAVersion? = 'ufox'; {Foreign File Access version}
  1960.  
  1961.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1962. vers (System [6.0.4])
  1963.      gestaltVersion
  1964.      Returns the version of Gestalt as INTEGER.
  1965.  
  1966.      gestaltVersion = 'vers'; {Gestalt version}
  1967.  
  1968.      NOTE:
  1969.      Usually version 1 is present. On machines with ROM version 1917
  1970.      (Quadra 840AV, PowerMacs etc.) version 4 is present.
  1971. via1 (System [6.0.4, discontinued])
  1972.      gestaltVIA1Addr
  1973.      Returns the address of VIA 1.
  1974.  
  1975.      gestaltVIA1Addr = 'via1'; {VIA 1 address}
  1976. via2 (System [6.0.4, discontinued])
  1977.      gestaltVIA2Addr
  1978.      Returns the address of VIA 2.
  1979.  
  1980.      gestaltVIA2Addr = 'via2'; {VIA 2 address}
  1981. vm   (System [6.0.4])
  1982.      (RAM Doubler [1.0] by Connectix Corporation)
  1983.      gestaltVMAttr
  1984.      Returns information about virtual memory.
  1985.  
  1986.      gestaltVMPresent      = 0; {set; virtual memory present}
  1987.      gestaltVMNotInstalled = 0; {clear; virtual memory not present}
  1988.  
  1989.      NOTE:
  1990.      Future OS may have VM always on but this is not reported by this
  1991.      selector. A future selector will tell if the microkernal is running
  1992.      and thus if VM is actually used. *AD10
  1993. wma. (System [7.0])
  1994.      (Responder ext [2.0?])
  1995.      gestaltResponderAttr
  1996.      Returns information about the Workstation Management Agent a.k.a.
  1997.      Responder.
  1998.  
  1999.      gestaltResponderAttr    = 'wma.'; {Responder attributes}
  2000.      gestaltResponderPresent = 0;      {Responder is present}
  2001. xlat (Macintosh Easy Open cp [1.0]) *AD03
  2002.      gestaltTranslationAttr
  2003.      Returns information about the Translation Manager.
  2004.  
  2005.      gestaltTranslationAttr            = 'xlat'; {Translation Mgr attrib.}
  2006.      gestaltTranslationMgrExists       = 0;      {TM present}
  2007.      gestaltTranslationMgrHintOrder    = 1;      {TRUE if hint order}
  2008.                                                  {reversal bug is fixed}
  2009.      gestaltTranslationPPCAvail        = 2;      {PPC Lib. available}
  2010.      gestaltTranslationGetPathAPIAvail = 3;      {GetFileTranslationPath}
  2011.                                    {and GetPathTranslationDialog available}
  2012.      gestalt???                        = 4;      {by MEO 1.1}
  2013. xttt (System [6.0.8])
  2014.      gestaltExtToolboxTable
  2015.      Returns the base address of the Extended Toolbox trap table.
  2016.  
  2017.      gestaltExtToolboxTable = 'xttt'; {Extended Toolbox trap table}
  2018.  
  2019. Apple Additional Software
  2020. -------------------------
  2021. arb  (Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
  2022.      gestaltArbitorAttr *AD02
  2023.      Returns information about the Serial Port Arbitration.
  2024.  
  2025.      gestaltArbitorAttr             = 'arb '; {Serial Port Arbitration}
  2026.                                               {attributes}
  2027.      gestaltSerialArbitrationExists = 0;      {Serial Port Arbitration}
  2028.                                               {installed}
  2029. cltn (QuickDraw GX [1.0])
  2030.      gestaltCollectionMgrVersion
  2031.      Returns the version of the Collection Manager as NumVersion.
  2032.  
  2033.      gestaltCollectionMgrVersion = 'cltn'; {Collection Mgr version}
  2034.  
  2035.      NOTE:
  2036.      The Collection Manager is a set of routines for maintaining tagged
  2037.      collections of data; GX uses it to support the "tags" that you can
  2038.      attach to GX objects, for holding special data, including
  2039.      user-defined data. (Lawrence D'Oliveiro)
  2040. cmta (ColorSync ext [1.0.4?]
  2041.      gestaltColorMatchingAttr *AD09
  2042.      Returns information about the ColorSync Utilities?
  2043.  
  2044.      gestaltColorMatchingAttr        = 'cmta'; {Color Matching Attributes}
  2045.      gestaltHighLevelMatching        = 0;      {BeginMatching &}
  2046.                                                {DrawMatchedPicture present}
  2047.      gestaltColorMatchingLibLoaded   = 1;      {Native PowerPC shared}
  2048.                                                {library is loaded. a.k.a.}
  2049.                                                {gestaltSharedLibLoaded?}
  2050. cmtc (ColorSync ext [1.0?])
  2051.      gestaltColorMatchingVersion
  2052.      Returns the version of the Color Matching software as BCD.
  2053.  
  2054.      gestaltColorMatchingVersion = 'cmtc'; {Color Matching version}
  2055.      gestaltColorSync10          = $0100;  *AD09
  2056.      gestaltColorSync11          = $0110;  *AD09
  2057.      gestaltColorSync104         = $0104;  *AD09
  2058.      gestaltColorSync105         = $0105;  *AD09
  2059.  
  2060.      NOTE: From version 1.0.4 up the correct version is returned.
  2061. fsm  (File System Manager ext [1.2?])
  2062.      gestaltFSMVersion *AD14
  2063.      Returns File System Manager version as BCD.
  2064.  
  2065.      gestaltFSMVersion = 'fsm ';
  2066. gfxa (QuickDraw GX [1.0])
  2067.      gestaltGraphicsAttr
  2068.      Returns information about the Graphics.
  2069.  
  2070.      gestaltGraphicsAttr        = 'gfxa'; {graphics attributes bits }
  2071.      gestaltGraphicsIsDebugging = $0001;
  2072.      gestaltGraphicsIsLoaded    = $0002;
  2073.      gestaltGraphicsIsPowerPC   = $0004;
  2074.  
  2075.      NOTE: Not bit values but bit masks? Use AND?
  2076. grfx (QuickDraw GX ext [1.0])
  2077.      gestaltGraphicsVersion
  2078.      Returns the version of the Graphics as INTEGER.
  2079.  
  2080.      gestaltGraphicsVersion        = 'grfx';    {Gestalt version selector}
  2081.      gestaltCurrentGraphicsVersion = $00010000; {supposed value returned}
  2082. kids (At Ease [1.0])
  2083.      kAtEaseGestalt
  2084.      Returns a handle to a structure holding information about At Ease.
  2085.  
  2086.      The following code was published by Apple *AT06:
  2087.  
  2088.      #define kAtEaseGestalt    'kids'
  2089.      typedef struct {
  2090.        short  giVersion;         /* structure version */
  2091.        short  giIsActive;        /* true if at ease is currently running */
  2092.        short  giAutoCreateAlias; /* if true then auto create alias */
  2093.        short  giRequestFloppy;   /* if true then request floppy on new
  2094.                                     saves */
  2095.        short  giStacksAreApps;   /* if true then HyperCard stacks are shown
  2096.                                     with applications */
  2097.        FSSpec giItemsLocation;   /* location of the At Ease Items folder */
  2098.      } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
  2099. mess (QuickDraw GX [1.0])
  2100.      gestaltMessageMgrVersion
  2101.      Returns the version of the Message Manager as NumVersion.
  2102.  
  2103.      gestaltMessageMgrVersion = 'mess'; {Message Mgr version}
  2104.  
  2105.      NOTE:
  2106.      The Message Manager is an implementation of object-oriented-style
  2107.      message passing within an inheritance hierarchy, that can be used from
  2108.      non-OO languages.
  2109.      It is used by the GX printing system, to allow the customization of
  2110.      printing behaviour by letting applications (and developers of printing
  2111.      extensions) intercept messages sent to the printer driver.
  2112.      (Lawrence D'Oliveiro)
  2113. pmgr (QuickDraw GX [1.0])
  2114.      gestaltPrintingMgrVersion
  2115.      Returns the version of the QuickDraw GX Printing Manager as
  2116.      NumVersion.
  2117.  
  2118.      gestaltPrintingMgrVersion = 'pmgr'; {Printing Mgr version}
  2119. qdgx (QuickDraw GX [1.0])
  2120.      gestaltGXVersion
  2121.      Returns the version of QuickDraw GX as NumVersion.
  2122.  
  2123.      gestaltGXVersion = 'qdgx'; {QuickDraw GX version}
  2124. srta (Speech Recognition ext [1.2.1?])
  2125.      gestaltSpeechRecognitionAttr
  2126.      Returns information about the Speech Recognition software.
  2127.  
  2128.      gestaltSpeechRecognitionAttr      = 'srta';
  2129.      gestaltDesktopSpeechRecognition   = 0;      {Recognition using mic.}
  2130.      gestaltTelephoneSpeechRecognition = 1;      {FUTURE}
  2131.  
  2132.      NOTE:
  2133.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  2134.      selector is installed on all machines and the response value will
  2135.      indicate the speech recognition is available. (Rene Ros)
  2136. srtb (Speech Recognition ext [1.2.1?])
  2137.      gestaltSpeechRecognitionVersion
  2138.      Returns the version of the Speech Recognition software as BCD.
  2139.  
  2140.      gestaltSpeechRecognitionVersion = 'srtb';
  2141.  
  2142.      NOTE:
  2143.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  2144.      selector is installed on all machines and its presence will indicate
  2145.      the speech recognition is available. (Rene Ros)
  2146. strm (Remote Access Aliases [1.0], part of Apple Remote Access)
  2147.      gestaltRemoteAccessAttr *AD02
  2148.  
  2149.      gestaltRemoteAccessAttr    = 'strm'; {Remote Access attributes}
  2150.      gestaltRemoteAccessExists  = 0;      {RA Connection Interface is}
  2151.                                           {available}
  2152.      gestalt???                 = 1;      {installed since ARA 2.0?}
  2153.      gestalt???                 = 3;      {installed since ARA 2.0?}
  2154. tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
  2155.      gestaltTSMTEAttr *AS07
  2156.      Returns information about the Text Services Manager for TextEdit.
  2157.  
  2158.      gestaltTSMTEAttr    = 'tmTE'; {TSM for TE attributes}
  2159.      gestaltTSMTEPresent = 0;      {TSM for TE is present}
  2160. tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
  2161.      gestaltTSMTEVersion *AS07
  2162.      Returns the version of the Text Services Manager for TextEdit as BCD.
  2163.  
  2164.      gestaltTSMTEVersion = 'tmTV'; {TSM for TE version}
  2165.      gestaltTSMTE1       = $0100;  {TSM for TE version 1.0}
  2166. ttsc (Text-To-Speech Manager ext [1.0?])
  2167.      gestaltSpeechAttr
  2168.      Returns information about the Speech Manager.
  2169.  
  2170.      gestaltSpeechAttr       = 'ttsc'; {Text-To-Speech Manager attrib.}
  2171.      gestaltSpeechMgrPresent = 0;      {bit true if Speech Mgr present}
  2172.      gestaltSpeechHasPPCGlue = 1;      {Speech Mgr has native PPC glue}
  2173. ws 1 (WorldScript I ext [7.1?])
  2174.      gestaltWorldScriptIVersion?
  2175.      Returns version of WorldScript I software as BCD.
  2176.  
  2177.      gestaltWorldScriptIVersion? = 'ws 1';
  2178. XTND (??? [???])
  2179.      gestaltXTNDAttr *AS11
  2180.      Returns information about XTND Manager?
  2181.  
  2182.      gestaltXTNDAttr       = 'XTND';
  2183.      gestaltPPCXTNDPresent = 1;
  2184.  
  2185.      NOTE:
  2186.      Is used in some code to check if XTND engine is present. However it is
  2187.      unknown when it is installed, so supposedly it is meant for future
  2188.      use. Like a built-in XTND engine in the System Software? When the
  2189.      selector is installed all operations are dispatched through trap
  2190.      _XTNDMgr ($ABF4) otherwise the library provides the code.
  2191.      (Marco Piovanelli)
  2192.  
  2193. Third Parties Software
  2194. ----------------------
  2195. !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
  2196.      gestaltSymbiontsTable
  2197.      Returns a pointer to a structure containing the size of the System
  2198.      Heap before and after loading the INITs.
  2199.  
  2200.      gestaltSymbiontsTable = '!SYM'; {Symbionts address}
  2201. ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2202.      gestaltAfterDarkFolder *M05
  2203.      Returns a pointer to a procedure that gives the DirID and vRefNum of
  2204.      the 'After Dark Files' folder.
  2205.  
  2206.      gestaltAfterDarkFolder = 'ADfd';
  2207.      
  2208.      NOTE:
  2209.      See for more information the AfterDark Gestalt header file (See
  2210.      chapter 'Related Software' for availability)
  2211. ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
  2212.      gestaltAfterDarkAttr *M05
  2213.      Returns a longword bitmask containing public information about
  2214.      After Dark.
  2215.  
  2216.      gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
  2217.      eSystemIQActive      = 0;      {SystemIQx activity monitor active}
  2218.      eSoundActive         = 1;      {AD has allocated a sound channel}
  2219.      eADAcquiringPassword = 2;      {After Dark has its password dialog up}
  2220.  
  2221.      NOTE:
  2222.      See for more information the AfterDark Gestalt header file (See
  2223.      chapter 'Related Software' for availability)
  2224. ApoL (Apollo ext [1.0] by Jeremy Roussak)
  2225.      gestaltApolloTable
  2226.      Returns a handle to an instance of a structure.
  2227.  
  2228.      gestaltApolloTable = 'ApoL'; {Apollo address}
  2229.  
  2230.      NOTE:
  2231.      See for more information the Programmers' Information chapter in the
  2232.      Apollo 1.0 documentation. (Jeremy Roussak)
  2233. ASHI (Arashi app [???] by Juri Munkki)
  2234.      ???
  2235.      Returns information about the presence of Arashi by returning one (1)
  2236.      if loaded, and zero (0) when removed.
  2237. AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
  2238.      gestaltAutoBuildVersion
  2239.      Returns the version of AutoBuild as NumVersion.
  2240.  
  2241.      gestaltAutoBuildVersion = 'AuBu'; {AutoBuild version}
  2242.  
  2243.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  2244. BBlk (Basic Black cp [1.3], by Mason L. Bliss)
  2245.      gestaltBasicBlackAddr
  2246.      Returns the address of Basic Black's patch globals.
  2247.  
  2248.      gestaltBasicBlackAddr = 'BBlk'; {Basic Black address}
  2249.  
  2250.      NOTE:
  2251.      See documentation included with Basic Black for more information.
  2252. BIFF (QM Biff ext [1.0] by Patrick C. Beard)
  2253.      ???
  2254.      Determines if there is mail (QuickMail). The response long word is 1
  2255.      if you have mail, and 0 if you don't.
  2256. Cafe (Coffee Break appl [1.0] by Thomas Reed)
  2257.      gestaltCoffeeBreakAddr?
  2258.      Returns a pointer to a code resource owned by Coffee Break.
  2259.      Details are private.
  2260.  
  2261.      gestaltCoffeeBreakAddr? = 'Cafe';
  2262. CKI3 (AETracker cp [3.0] by C.K. Haun)
  2263.      gestaltAETrackerAddr
  2264.      This selector returns a pointer to the external interface routine for
  2265.      AETracker, details of which are in the AETracker interface guide.
  2266.      (C.K. Haun)
  2267.  
  2268.      gestaltAETrackerAddr = 'CKI3'; {AETracker address}
  2269. CsWT (Desktop Strip cp [1.0b1] by Sigurdur Asgeirsson)
  2270.      gestaltDesktopStripAttr?
  2271.      Returns information about the installed Desktop Strip software.
  2272.  
  2273.      gestaltDesktopStripAttr?    = 'CsWT';
  2274.      gestaltDesktopStripPresent? = 0;
  2275. dBgP (DBugR cp [1.0?] by Alessandro Levi Montalcini)
  2276.      ???
  2277.      Returns a pointer to a data structure with the preferences,
  2278.      identical to the data in the PREF resource, for which a template
  2279.      is included.
  2280.  
  2281.      NOTE: The d is actually the option-d character (ASCII $B6).
  2282. EagL (Eagle ext [1.4], part of Apollo 1.1 by Jeremy Roussak)
  2283.      gestaltEagleAttr?
  2284.      Returns information about the state of the Eagle background
  2285.      application.
  2286.  
  2287.      gestaltEagleAttr?     = 'EagL'; {Eagle attributes}
  2288.      gestaltEaglePPCReady? = 0;      {Eagle can accept next PPC}
  2289. FPUE (SoftwareFPU cp [3.0?] by John Neil & Associates) *M06
  2290.      gestaltSoftwareFPUAddr?
  2291.      Detects presence of SoftwareFPU.
  2292.      If the result of the Gestalt call is noErr, then SoftwareFPU is
  2293.      installed, and the 68881 FPU reported by the gestaltFPUType selector
  2294.      is an emulated FPU. The value returned in the response is private and
  2295.      should be ignored.
  2296.  
  2297.      gestaltSoftwareFPUAddr? = 'FPUE';
  2298. FrcP (Decor cp [1.0] by Francois Pottier)
  2299.      gestaltDecorAddr
  2300.      Returns a pointer to a structure which can be read or changed, and
  2301.      enables programmers to change the picture on the desktop.
  2302.  
  2303.      gestaltDecorAddr = 'FrcP'; {Decor address}
  2304.  
  2305.      NOTES:
  2306.      See for more information on how to use this structure the
  2307.      documentation included with Decor 1.0 or later.
  2308.  
  2309.      The c is actually the option-c character (ASCII $8D).
  2310. Gast (Gestalt! appl [2.9.2] by Roland Mansson)
  2311.      gestaltGestaltVersion
  2312.      Returns the version of the application as NumVersion.
  2313.      GestaltValue is removed when application quits. Just for fun.
  2314.      (Roland Mansson)
  2315.  
  2316.      gestaltGestaltVersion = 'Gast'; {Gestalt! version}
  2317.  
  2318.      NOTE: The a is actually the option-u/a character (ASCII $8A).
  2319. GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
  2320.      ???
  2321.      Snippet code, see documentation. (See chapter 'Related Software'
  2322.      for availability).
  2323. GWat (GestaltWatch ext [1.0] by Scot Bronson)
  2324.      ???
  2325.      Returns pointer to structure where collected information is stored.
  2326.  
  2327.      NOTE: In development, not yet available.
  2328. IF 8 (Speak Note cp [???] by Glenn R. Howes)
  2329.      gestaltSpeechNoteAttr?
  2330.      Returns information about the installed copy of Speak Note.
  2331.  
  2332.      gestaltSpeechNoteAttr?     = 'IF 8';
  2333.      gestaltSpeechNoteAvailable = 0;
  2334. Lnch (Network Time cp [2.0] by Pete Resnick)
  2335.      (First Launch Gestalt INIT code resource, by Pete Resnick)
  2336.      gestaltFirstLaunchAttr
  2337.      Returns info on whether the _Launch trap has been called by the
  2338.      System.
  2339.  
  2340.      gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
  2341.      gestaltFirstLaunchDone = 0;      {_Launch called, INIT time over}
  2342.  
  2343.      NOTE:
  2344.      Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
  2345.      _Launch trap has been called since startup of the machine. All other
  2346.      bits are reserved and currently 0. Even if not installed at INIT time,
  2347.      Network Time will install the Gestalt selector if it is not already
  2348.      there when the control panel is opened and automatically set
  2349.      bit 0 to 1.
  2350.      68000 assembler source code is available for the INIT that installs
  2351.      the selector, and INIT resource -4048 from Network Time may be
  2352.      stolen (and renumbered as desired) and used in any INIT file as
  2353.      desired. (Pete Resnick)
  2354. NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
  2355.      gestaltNovellIPXVersion
  2356.      Returns the version of MacIPX as NumVersion.
  2357.  
  2358.      gestaltNovellIPXVersion = 'NIPX'; {MacIPX version}
  2359.  
  2360.      NOTE:
  2361.      If the selector returns an error (i.e. no such selector?) then MacIPX
  2362.      is not installed. If the selector returns 0 then MacIPX is installed
  2363.      but the driver is not open. Any other value is the version.
  2364.      (Duane Murphy)
  2365. NMBT (Attention cp [0.6] by Marco Piovanelli)
  2366.      gestaltAttentionAddr
  2367.      The response value returned is a pointer to a read-only parameter
  2368.      block in the system heap.
  2369.  
  2370.      gestaltAttentionAddr = 'NMBT'; {Attention address}
  2371.  
  2372.      NOTE: See for more detailed information the included ReadMe file.
  2373. NTim (Network Time cp [2.0] by Pete Resnick)
  2374.      ???
  2375.      Returns information private to Network Time.
  2376. PPP  (PPP mdev [???], part of MacPPP by Merit Network, Inc. and the
  2377.       University of Michigan)
  2378.      ???
  2379.      Returns the address of the Lap globals as documented in the header
  2380.      file 'ppp.h.source'. It's an absolutely enormous struct that contains
  2381.      among other things function pointers to let you open and close MacPPP.
  2382.      (Richard Buckle)
  2383.  
  2384.      ??? = 'PPP ';
  2385.  
  2386.      NOTE:
  2387.      Source code of MacPPP is available at:
  2388.      ftp://merit.edu/pub/ppp/mac/
  2389. PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
  2390.      gestaltPwrSwitcherTable
  2391.      Returns a pointer to a private data structure (undocumented).
  2392.  
  2393.      gestaltPwrSwitcherTable = 'PWRS'; {Power Switcher address}
  2394. SAVC (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2395.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2396.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2397.      gestaltScreenSaverControl *M05
  2398.      Returns a pointer to a procedure of type
  2399.  
  2400.      typedef pascal OSErr (*SaverControlProcPtr) (SaverCommand command);
  2401.  
  2402.      which allows controlling the screen saver.
  2403.  
  2404.      gestaltScreenSaverControl = 'SAVC';
  2405.  
  2406.      NOTE:
  2407.      See for more information the AfterDark Gestalt header file (See
  2408.      chapter 'Related Software' for availability)
  2409. SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2410.      (Arashi app [???] by Juri Munkki)
  2411.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2412.      (Coffee Break app [1.0] by Thomas Reed)
  2413.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2414.      gestaltScreenSaverAttr *M05
  2415.      Returns information about the current screen saver. Defined if a
  2416.      screen saver is installed.
  2417.  
  2418.      gestaltScreenSaverAttr    = 'SAVR'; {Screen saver attributes}
  2419.      gestaltSaverTurnedOn      = 0;      {saver enabled/disabled}
  2420.      gestaltSaverAsleep        = 1;      {saver currently asleep}
  2421.      gestaltSaverDemoMode      = 2;      {saver sleeping in demo mode}
  2422.      gestaltSaverPasswordMode  = 3;      {saver sleeping in password-}
  2423.                                          {protected mode}
  2424.      gestaltAppDrawingDisabled = 4;      {QD drawing disallowed between}
  2425.                                          {module animation frames}
  2426.  
  2427.      NOTE:
  2428.      See for more information the AfterDark Gestalt header file (See
  2429.      chapter 'Related Software' for availability)
  2430. SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
  2431.      kSDDelayCreator
  2432.      Returns a pointer to a data structure described in the documentation
  2433.      included with Shutdown Delay.
  2434.  
  2435.      kSDDelayCreator = 'SDdD';
  2436.  
  2437.      NOTE: The d is actually the option-shift v character (ASCII $D7).
  2438. SHCM (Shared Code Manager ext [1.0] by Eric Schlegel of Microsoft Corp.)
  2439.      gestalt???
  2440.      Returns a pointer to an undocumented entrypoint into the Shared Code
  2441.      Manager.
  2442.  
  2443.      gestalt??? = 'SHCM';
  2444.  
  2445.      NOTE:
  2446.      The Shared Code Manager (1991) is a simple DLL mechanism that is
  2447.      currently used by Microsoft's Mac OLE 1.0 (Object Linking & Embedding)
  2448.      and the applications that use OLE 1.0. (Eric Schlegel)
  2449. SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
  2450.      gestaltStuffItSpaceSaverAddr
  2451.      Returns the address of the SpaceSaver "command module" which allows
  2452.      developers to access all the functions of SpaceSaver.
  2453.      (Leonard Rosenthol)
  2454.  
  2455.      gestaltStuffItSpaceSaverAddr = 'SLip';
  2456. TExT (FileTyper Menu cp [none], part of FileTyper by Daniel Azuma)
  2457.      gestaltTyperMenuAttr
  2458.      Returns information about the FileTyper Menu's operation.
  2459.  
  2460.      gestaltTyperMenuAttr = 'TExT';
  2461.      gestalt???           = 0;      {TRUE = NO item added to Finder's}
  2462.                                     {File menu}
  2463.  
  2464.      WARNING:
  2465.      No currently released version of FileTyper Menu (up to and including
  2466.      4.1.1) installs this selector, but future versions may. Check for the
  2467.      existence of this selector first, if you use it. (Daniel Azuma)
  2468. TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
  2469.      ???
  2470.      The value returned is a pointer to a Monitor information block. *M04
  2471.      (Scott Bronson)
  2472. Typ4 (FileTyper Menu cp [4.1.1], part of FileTyper by Daniel Azuma)
  2473.      gestaltTyperMenuPriv
  2474.      Returns private information, the existence of this selector indicates
  2475.      FileTyper Menu is installed.
  2476.  
  2477.      gestaltTyperMenuPriv = 'Typ4';
  2478.  
  2479.      NOTE:
  2480.      Third parties can determine if FileTyper Menu is installed by
  2481.      checking for the existence of this selector. However, the actual value
  2482.      returned is private and subject to change. (Daniel Azuma)
  2483. UMAM (Authentication Manager cp [1.0.7] by Robert John Churchill of the
  2484.                                            University of Michigan)
  2485.      gestaltAuthManVersion
  2486.      Returns the version of the Authentication Manager as Double BCD.
  2487.  
  2488.      gestaltAuthManVersion = 'UMAM';
  2489. YeHa (SpeedyFinder7 cp [1.5.4?] by Victor Tan)
  2490.      ???
  2491.      Returns a pointer to a private data structure (undocumented).
  2492.  
  2493.      NOTE:
  2494.      The structure to which the Gestalt selector refers changes almost
  2495.      invariably from version to version of SF7. Should someone work out
  2496.      parts of the structure of the selector keep in mind that it will
  2497.      almost certainly change in the next minor release and definitely with
  2498.      the next major release. (Victor Tan)
  2499.  
  2500. Unknown Gestalt Selector Codes
  2501. ==============================
  2502. The following sections list selector codes of which the meaning is unknown.
  2503.  
  2504. Apple Software
  2505. --------------
  2506. OSType(7) (System [6.0.4])
  2507.      Returns LongInt('carl') and a result code of noErr.
  2508. OSType(13) (System [6.0.4])
  2509.      Returns LongInt('bbmc') and a result code of noErr.
  2510. 3615 (Express Modem cp [1.0], part of Express Modem Software)
  2511. a pc (??? [???], part of System on Quadra 610-DOS?)
  2512. admn (AppleShare Admin appl [3.0])
  2513.      gestaltASAdminAttr?
  2514.  
  2515.      gestaltASAdminAttr?    = 'admn';
  2516.      gestaltASAdminPresent? = 0;
  2517. AgVU (Agent VU ext [2.0?], part of Virtual User)
  2518. afps (AppleShare File Server? app? [4.0?])
  2519.      (System [7.5])
  2520.      Bits 0 and 16 set.
  2521. aint (System? [7.1.1?])
  2522.      NOTE: Returns 2 on a C660AV and Q840AV.
  2523. apml (PowerTalk Manager ext [1.0?], part of System 7.1 Pro)
  2524.      Bit 0 and 31 set.
  2525. aslm (Shared Library Manager ext [1.1.1?])
  2526.      (System? [???])
  2527.      gestaltSharedLibraryMgr?
  2528.      Returns the version of the Shared Library Manager as BCD in high word
  2529.      and information about the SLM in low word?
  2530.  
  2531.      gestaltSharedLibraryMgr? = 'aslm';
  2532.      gestaltSharedLibrary???  = 0;
  2533.      gestaltSharedLibrary???  = 1;
  2534.  
  2535.      NOTE:
  2536.      This selector appears to be both an attribute and version selector:
  2537.        - the version is BCD in the high word (confirmed in version 1.1.2
  2538.          and 2.0 doesn't contradict this)
  2539.        - the attributes are in the low order word (but I don't know the
  2540.          meanings)
  2541.      (John Mancino)
  2542. asps (AppleShare Print Server appl [3.0])
  2543.      gestaltASPrintServerAttr?
  2544.  
  2545.      gestaltASPrintServerAttr?    = 'asps';
  2546.      gestaltASPrintServerPresent? = 0;
  2547. AtEa (At Ease Startup [2.0?], part of At Ease for Workgroups)
  2548. bART (MacCheck app [1.0])
  2549. BaRT (MacCheck app [1.0])
  2550. bast (Performa cp [1.1], part of System 7.1P)
  2551. batt (Powerbook Duo Enabler [1.0])
  2552.      (System [7.5])
  2553.      (System Enabler 111 [1.0])
  2554.      (System Enabler 121 [1.0])
  2555.      (System Enabler 131 [1.0])
  2556.      (System Enabler 201 [1.0]))
  2557.      Returns information about the PowerBook battery?
  2558.  
  2559.      The debugger name for the routine which returns the response for this
  2560.      selector is called 'GETTIMELEFT'. But in what units? And what time?
  2561.      I've only seen the value 0, 5 or 6 returned. The GDEF calls the Power
  2562.      Manager (_PMgrOp [$A085 with D0=$00]) to get the info but I can't find
  2563.      which function. (Rene Ros)
  2564. brcn (Screen? cp [1.0?] on Color Classic)
  2565. brcN (Energy Saver cp [1.0?], part of Monitor Energy Saver)
  2566. bugx (System [7.5])
  2567.      (System Update ext [3.0])
  2568.  
  2569.      NOTE:
  2570.      The System Update reserves the 'bugx;, â€˜bugy’ and â€˜bugz’ gestalt
  2571.      selectors to indicate which fixes are installed on a given machine.
  2572.      These are for Apple internal use only, and developers should not rely
  2573.      on these. There is no guarantee that they will be supported in future
  2574.      versions of Macintosh system software. *AT06
  2575. bugy (32-bit System Enabler [1.0])
  2576.      (Hardware System Update ext [1.0])
  2577.      (Network Launch Fix ext [1.0])
  2578.      (Sound Manager ext [3.0])
  2579.      (System? [7.1?])
  2580.      (System enabler 065)
  2581.      gestaltEnablerAttr?
  2582.  
  2583.      gestaltEnablerAttr?                  =  'bugy'; ?
  2584.      gestaltEnablerEgretDispatchPatch?    =  0; {these correct the system}?
  2585.      gestaltEnablerEgretTimePatch?        =  1; { clock and modem perf.}?
  2586.      gestalt???                           =  2; {unknown, Hardware Upd.}
  2587.      gestaltEnablerEgretTickHandlerPatch? =  3; { see bit 0 & 1}?
  2588.      gestalt???                           =  4; {unknown, Hardware Upd.}
  2589.      gestaltEnablerSCSIPatch?             =  5; {floppy drive fixed}?
  2590.      gestalt???                           =  6; {unknown, Hardware Upd.}
  2591.      gestaltEnabler32bit?                 =  7; {32-bit enabler present}?
  2592.      gestalt???                           =  9; {unknown, Sound Mgr 3.0}
  2593.      gestalt???                           = 11; {unknown, Hardware Upd.}
  2594.      gestalt???                           = 12; {unknown, Hardware Upd.}
  2595.      gestalt???                           = 13; {unknown, Hardware Upd.}
  2596.      gestalt???                           = 14; {unknown, Hardware Upd.}
  2597.      gestalt???                           = 15; {unknown, Hardware Upd.}
  2598.      gestalt???                           = 16; {unknown, Hardware Upd.}
  2599.      gestaltEnablerKeyboardPatch?         = 17; {corrects Adjustable Kbd
  2600.                                              gestaltKeyboardType response?}
  2601.      gestalt???                           = 18; {unknown, Hardware Upd.}
  2602.      gestalt???                           = 19; {unknown, ???}
  2603.      gestalt???                           = 24; {unknown, ???}
  2604.      gestalt???                           = 25; {unknown, ???}
  2605.      gestalt???                           = 26; {unknown, ???}
  2606.      gestaltNetworkLaunchFix?             = 27; {fix problem with appl. on}
  2607.                                                 {server launch with 68040}
  2608.      gestalt???                           = 28; {unknown, ???}
  2609.      gestalt???                           = 31; {unknown, ???}
  2610.  
  2611.      WARNING:
  2612.      These are ALL guesses. Well not entirely, I used the ResEdit CODE
  2613.      Editor to peek into the 32-bit System Enabler, Hardware System update
  2614.      and other software. Please check if I'am right. You should be able to
  2615.      find some of the answers in the INIT resource of the Hardware Update
  2616.      and the names of the PTCH resources in version 1.0 were also useful...
  2617.      The System Enablers (for new Macintosh models) don't seem to install
  2618.      or change any Gestalt selector to indicate their presence.
  2619.  
  2620.      NOTE:
  2621.      The System Update reserves the 'bugx;, â€˜bugy’ and â€˜bugz’ gestalt
  2622.      selectors to indicate which fixes are installed on a given machine.
  2623.      These are for Apple internal use only, and developers should not rely
  2624.      on these. There is no guarantee that they will be supported in future
  2625.      versions of Macintosh system software. *AT06
  2626. bugz (System [7.0]/Tune-up ext)
  2627.  
  2628.      NOTE:
  2629.      The System Update reserves the 'bugx;, â€˜bugy’ and â€˜bugz’ gestalt
  2630.      selectors to indicate which fixes are installed on a given machine.
  2631.      These are for Apple internal use only, and developers should not rely
  2632.      on these. There is no guarantee that they will be supported in future
  2633.      versions of Macintosh system software. *AT06
  2634. cate (Catalogs Extension? ext [???], part of System 7.1 Pro ?)
  2635.      Bit 0 set.
  2636. CDJR (Apple Menu Options cp [1.0], part of System 7.5)
  2637.      (ExtendedAppleMenu [???] by Chris Derossi)
  2638. cfmg (System [7.1.2 on PowerMac])
  2639. clbv (PowerTalk ext [1.0?], part of System 7.1 Pro and 7.5)
  2640.      Bit 0 set.
  2641. comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
  2642.  
  2643.      NOTES:
  2644.      The name "QuickDraw Font Plus" is translated from Japanese and may be
  2645.      translated differently by Apple Computer, Inc.
  2646.  
  2647.      I think 'comp' stands for 'composite', as the INIT contains patches to
  2648.      the Font Manager needed to handle 'composite font suitcases'.
  2649.      (Marco Piovanelli)
  2650. ctxm (???)
  2651. detc (???)
  2652. diag (Automated Diagnostics ext [1.0], part of Apple Personal
  2653.                                        Diagnostics 1.0)
  2654. doub (WorldScript II ext [???], part of KanjiTalk7)
  2655.      gestaltDoubleByteScriptVersion?
  2656.      Returns the version of WorldScript II as BCD?
  2657.  
  2658.      gestaltDoubleByteScriptVersion? = 'doub';
  2659.  
  2660.      NOTE:
  2661.      This selector seems to be installed by WorldScript II (the
  2662.      System 7.1 ext needed to handle double-byte scripts like Japanese,
  2663.      Korean and Traditional Chinese). Known returned value is $0x0710.
  2664.      (Marco Piovanelli)
  2665. dude (Powerbook Duo Enabler [1.0])
  2666.      (System [7.5])
  2667.      (System Enabler 111 [1.0])
  2668.      (System Enabler 121 [1.0])
  2669.      (System Enabler 131 [1.0])
  2670.      (System Enabler 201 [1.0]))
  2671. dudi (Powerbook Duo Enabler [1.0])
  2672.      (System [7.5])
  2673.      (System Enabler 111 [1.0])
  2674.      (System Enabler 121 [1.0])
  2675.      (System Enabler 131 [1.0])
  2676.      (System Enabler 201 [1.0]))
  2677. fdbk (Speech Setup cp? [???], part of PlainTalk)
  2678. fdrs (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2679.      Installed by Finder extension?
  2680. fnda (Finder [7.1.1])
  2681.      NOTE: The a is actually the option-a character (ASCII $8C).
  2682. fnd& (Finder?, System? [7.1.2 on PowerMac?])
  2683.      NOTE: The & is actually the option-shift-a character (ASCII $E5).
  2684. fnd* (Finder [7.1.1])
  2685.      NOTE: The * is actually the shift-6 character (ASCII $F6).
  2686. fnd? (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2687.      Installed by Finder extension?
  2688. fnd  (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2689.      Installed by Finder extension?
  2690. fndc (Finder [7.1.1])
  2691. fndn (Finder?, System? [7.1.2 on PowerMac?])
  2692.      NOTE: The n is actually an option-n, n (ASCII $96).
  2693. FNDR (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2694.      Installed by Finder extension?
  2695. futr (ThreadsINIT ext [2.0?], part of Threads Package)
  2696. gFax (Fax Extension ext [1.1?], part of Express Modem Software)
  2697. gntz (System [7.1.2 on PowerMac])
  2698. gpad (System? [7.5?])
  2699. gprf (System? [7.5?])
  2700. HAM  (System? [7.5?])
  2701. harp (PowerBook cp? [7.2?])
  2702. hcsl (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  2703. heap (System [7.1.2 on PowerMac])
  2704.      Bits 1 and 5 set.
  2705. hgfd (AppleShare File Server appl [3.0])
  2706.      gestaltASFileServerAttr?
  2707.  
  2708.      gestaltASFileServerAttr?    = 'hgfd';
  2709.      gestaltASFileServerPresent? = 0;
  2710. HrIt (HearIt cp [1.0])
  2711. iadj (System? [7.1.2?] with PowerTalk?)
  2712.      (Display Enabler ext, Icon relocation INIT ID#3 [1.0])
  2713. idsp (???)
  2714. immg (??? [???] on PowerBook 520/540?)
  2715. intD (??? [???])
  2716.  
  2717.      NOTE:
  2718.      This is a mystery selector.  It isn't installed by any software, as
  2719.      far as I know, but the Finder 7.1 checks for this selector in certain
  2720.      situations. (Marco Piovanelli)
  2721. jkbd (??? (Japanese!) ext [1.0], part of KanjiTalk)
  2722. mbox (Mailbox Extension? ext [???], part of System 7.1 Pro ?)
  2723.      gestaltMailboxVersion?
  2724.      Returns version of Mailbox software as INTEGER.
  2725.      
  2726.      gestaltMailboxVersion? = 'mbox';
  2727. MClk (Date & Time cp [7.5], part of System 7.5)
  2728.      (SuperClock! cp [4.0] by Steve Christensen)
  2729. mjik (MenuMagic ext [1.0], part of System 7.1 Pro and 7.5)
  2730. mtem (Mount'em app [1.0b1] by Mike Wise and Chris Cotton of Apple Computer)
  2731.      Only installed if Mount'em driver is loaded. Looks like the highword
  2732.      contains the version (of driver or application?) as BCD, while the
  2733.      low-word is a mystery.
  2734. mtv! (TV Setup cp [1.0], part of System for Macintosh TV?)
  2735.  
  2736.      NOTE:
  2737.      Not seen installed, disassembled control panel, meaning unknown.
  2738.      It's probably an address. (Rene Ros)
  2739. lang (??? [???])
  2740.      gestalt???Attr
  2741.      Returns information about the Language Manager?
  2742.  
  2743.      gestalt???Attr = 'lang';
  2744.      gestalt???     = 1;
  2745.  
  2746.      NOTE:
  2747.      This is another mystery selector.  It isn't installed by any software,
  2748.      as far as I know, but the Standard File Package, installed by System
  2749.      Update 3.0, checks for this selector and tests bit 1. If it is
  2750.      present then it invokes a routine dispatched through trap $AA6D.
  2751.      (Marco Piovanelli)
  2752. ldap (???)
  2753. lstk (Speech Setup cp? [???], part of PlainTalk)
  2754. ltma (Link Tool Manager ext [2.0?], part of Apple Remote Access 2.0)
  2755.      gestaltLinkToolVersion?
  2756.      Returns the version of the Link Tool Manager as NumVersion?
  2757.  
  2758.      gestaltLinkToolVersion? = 'ltma';
  2759.  
  2760.      NOTE:
  2761.      The only value I've seen returned was $02002008, which would mean
  2762.      '2.0d8' which was not correct since the 'vers' recource said '2.0f0'.
  2763.      The value is hardcoded in the .LTM Driver resource. (Rene Ros)
  2764. mash (System [7.1P?]/At Ease [1.0?])
  2765.  
  2766.      NOTE:
  2767.      The Starter cp (part of System 7.1P) and Launcher cp (part of
  2768.      System 7.5) both contain a 'mash' resource and includes a template for
  2769.      it. Can this be the same data-structure? (Rene Ros)
  2770. mfdr (At Ease [1.0])
  2771. octb (??? [???] on PowerBook 520/540?)
  2772. ot   (??? [???])
  2773.      gestaltOpenTransportAttr?
  2774.      Returns information about the Open Transport software?
  2775.  
  2776.      gestaltOpenTransportAttr?    = 'ot  ';
  2777.      gestaltOpenTransportPresent? = 0;
  2778. PhoN (PowerBook Setup cp [7.3.1?], PhoneINIT INIT resource)
  2779. port (Powerbook Duo Enabler [1.0])
  2780.      (System [7.5])
  2781.      (System Enabler 111 [1.0])
  2782.      (System Enabler 121 [1.0])
  2783.      (System Enabler 131 [1.0])
  2784.      (System Enabler 201 [1.0])
  2785.      gestaltPortAttr?
  2786.      Returns information about the ports?
  2787.  
  2788.      gestaltPortAttr?           = 'port';
  2789.      gestaltHasInternalModem?   = 0?;
  2790.      gestaltHasExternalPrinter? = 1?;
  2791.      gestaltHasExternalModem?   = 2?;
  2792.  
  2793.      NOTE:
  2794.      System Enabler 201 and PowerBook Duo enabler contain an GDEF resource
  2795.      which indicates bits 0, 1 and 2 can be set. (Rene Ros)
  2796. ppad (Performa cp [1.1], part of System 7.1P)
  2797. pprf (Performa cp [1.1], part of System 7.1P)
  2798. ptlk (Speech Setup cp? [???], part of PlainTalk)
  2799. pxtn (System? [???])
  2800. Remt (AutoRemounter cp [???])
  2801. reno (Apple Help? ext? [???], part of System 7.5 ?)
  2802.      gestaltAppleGuideAttr?
  2803. serh (System? [7.1.2?])
  2804.      gestaltSerialHardware?
  2805.      Returns type of hardware used for serial I/O?
  2806.  
  2807.      gestaltSerialHardware? = 'serh'; {Serial Hardware}
  2808.      gestaltClassicSer?     = 'Clas'; {returned on PPC 8100/80 (GeoPort?)}
  2809. shal (System [7.1?])
  2810.  
  2811.      NOTE: Returns 2 on PowerMac and 1 on Centris 660AV
  2812. slnk (MNPLinkTool? [1.0], part of Apple Remote Access)
  2813. sndx (Sound Manager ext [3.0]?)
  2814.      gestaltSoundMgrAttr?
  2815.  
  2816.      gestaltSoundMgrAttr?    = 'sndx'?;
  2817.      gestaltSoundMgrPresent? = 0?
  2818. thng (ThreadsINIT ext [2.0?], part of Threads Package)
  2819. thrd (ThreadsINIT ext [2.0?], part of Threads Package)
  2820. tpad (System? [7.5?] on PowerBook 520/540?)
  2821. udsk (System [7.1.2 on PowerMac])
  2822. udsv (System [7.1.2 on PowerMac])
  2823. vdrc (System? [7.5?])
  2824. vmbs (System [7.0])
  2825.      (RAM Doubler [1.0] by Connectix Corporation)
  2826.      gestaltVMBackingStoreRef? (not listed)
  2827.      Returns the file reference number of the Virtual Memory storage file
  2828.      if VM is present.
  2829.  
  2830.      gestaltVMBackingStoreRef? = 'vmbs';
  2831. vmcl (System, VM on [7.0])
  2832. vmem (RAM Doubler [1.0] by Connectix Corporation)
  2833.      gestaltVMExtensionMgr? (addition)
  2834.      Returns type of software used to extend the Virtual Memory Mgr?
  2835.  
  2836.      gestaltVMExtensionMgr? = 'vmem';
  2837.      gestaltRAMDoubler?     = 'RaM2';
  2838.  
  2839.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  2840.  
  2841. Third Parties Software
  2842. ----------------------
  2843. *DC* (DepthCharge cp [???] by Maf Vosburgh)
  2844. AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
  2845. ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2846. ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2847.  
  2848.      NOTE:
  2849.      Not installed by AfterDark but the GDEF indicates it is able to return
  2850.      a response.
  2851. ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2852.  
  2853.      NOTE:
  2854.      Not installed by AfterDark but the GDEF indicates it is able to return
  2855.      a response.
  2856. ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
  2857. ADTK (Talk*Control cp [???] by 2Way Computing, Inc.)
  2858. AlaC (A La Carte cp [1.1?] by Denali Software Development)
  2859. AP00..AP06
  2860.      (RapidLock cp or RapidTrak cp [1.1], part of RapidTrak software by
  2861.       Insignia Solutions Inc.)
  2862.      It seems these selectors are installed for each harddisk connected to
  2863.      your Macintosh. The last two bytes of the selector are the SCSI ID.
  2864.      Although the third byte can mean something else, because perhaps
  2865.      'AP17' (listed below) is probably also installed by
  2866.      RapidLock/RapidTrack.
  2867. AP17 (???)
  2868. ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
  2869. ASTN (Asante EN/SC ext [???] by Asante Technologies, Inc.)
  2870. aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2871. AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
  2872. A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
  2873. Blad (Blood cp [1.0.1?] by Alessandro Levi Montalcini)
  2874.      NOTES:
  2875.      The B is actually the option-s character (ASCII $A7).
  2876.      The d is actually the option-d character (ASCII $B6).
  2877. bMRN (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
  2878.       by NOW Software)
  2879. CHSR (ChooserUser [1.2?] by Maurice Volaski)
  2880. CiCN (Color ICON Mania cp [1.0] by Yosuke Suzuki)
  2881. DanS (PowerClick cp [1.0] by Daniel A. Segel)
  2882. DCDt (NoDesktopCleanup cp [1.0?] by Alessandro Levi Montalcini)
  2883. DCKc (Keys! cp [1.0] by Stefan Kurth)
  2884.  
  2885.      NOTE: The lowercase c is actually the control-q (Command key sign)
  2886.      character (ASCII $11).
  2887. DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
  2888. DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
  2889. DFlh (DiskFlash cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  2890. Dpth (DepthMaster cp [1.0] by Victor Tan)
  2891. DWG! (Volume Menu cp [1.0] by David Gladstone, Chris Burns, Julian Harris)
  2892. EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
  2893. ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
  2894. ESOC (Serial of Champions ext [???] by Mike Throckmorton)
  2895. Extn (NOW Startup Manager cp [4.0?], part of NOW Utilities 4.0.1p package
  2896.       by NOW Software)
  2897. Fie  (Icon7 ext [???] by Inline Designs)
  2898.      gestaltIcon7?
  2899. fPth (FinderPaths cp? [???])
  2900.  
  2901.      NOTE: The f is actually the option-f character (ASCII $C4).
  2902. fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
  2903.       package)
  2904. FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
  2905. FW14 (FileWave Administrator ext [2.0?], part of FileWave 2.0
  2906.       by Wave Research)
  2907. FWCP (File Tracker Controls cp [1.0] by Mark Aiken)
  2908. fWmM (Super Boomerang cp [4.0?], part of NOW Utilities 4.0.1p package
  2909.       by NOW Software)
  2910. GrEG (Greg's Buttons ext [3.1.4?] by Greg Landweber)
  2911. GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  2912. gV00 (PowerPort cp? [???])
  2913. gV01 (PowerPort cp? [???])
  2914. gV02 (PowerPort cp? [???])
  2915. gV03 (PowerPort cp? [???])
  2916. gV04 (PowerPort cp? [???])
  2917. He20 (Helium cp [1.0?] by Robert L. Mathews)
  2918. HEID (Incognito cp [1.0?] by Manuel Veloso)
  2919. HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
  2920.      GDEF always returns value 1.
  2921. HtLk (Reference Link ext [1.0] by James W. Walker)
  2922. iHnd (Invisible Hand cp [1.0] by Carl Mauer)
  2923.  
  2924.      NOTE:
  2925.      Because this cp patches the _Random trap you can use this selector to
  2926.      determine its presence and refuse to continue.
  2927. Intj (Interjection ext [???])
  2928. JAiN (Rival cp by Inline Designs)
  2929.      gestaltRival
  2930.  
  2931.      NOTE: The i is actually the option-u/i character (ASCII $95).
  2932. jsm1 (???)
  2933. JXNM (NowMenus cp [4.0?], part of NOW Utilities 4.0.1p package
  2934.       by NOW Software)
  2935. KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
  2936. KBCM (???)
  2937. LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
  2938. LNCH (Talk*Control cp [???] by 2Way Computing, Inc.)
  2939. LxRZ (Retro.SCSI? ext [2.0?], part of Retrospect by Dantz Development
  2940.       Corporation)
  2941.      (Remote? cp [2.0?], part of Retrospect by Dantz Development
  2942.       Corporation)
  2943. Mgc! (Wizard INIT ext [1.0], part of Disk Wizard by Francois Pottier)
  2944. MJC& (AutoMenus II cp [???] by Michael Conrad)
  2945. MV10 (TearOFF cp [???] by Bad Boys' Software)
  2946. nOAg (??? cp [1.2?], part of netOctopus by Pole Position)
  2947. nOAv (??? cp [1.2?], part of netOctopus by Pole Position)
  2948.      Returns version as NumVersion?
  2949. NGst (NokNok cp [1.0?])
  2950. NkNk (NokNok cp [1.0?])
  2951. NowT (NOW Toolbox ext [4.0?], part of NOW Utilities 4.0.1p package,
  2952.       by NOW Software)
  2953. PBUf (???)
  2954. PBUt (???)
  2955. PRT+ (PrintAid [0.9?] by James W. Walker)
  2956. PtrP (PrintPatrol [1.0] by Randy DeRuiter and John Champion)
  2957. QRef (QuickRef ext? [1.0] by Scott Bronson)
  2958. ReSp (File Tracker Controls cp [1.0] by Mark Aiken)
  2959. RQDC (DropCheck cp [???] by Ronald B. Queloz)
  2960. SCTR (FaxMonitor ext [1.6?], part of FAXcilitate by PSI)
  2961. SDIT (???)
  2962. SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
  2963.       ALSoft, Inc.)
  2964. SFun (SF Windows [1.0] by Damon Cokenias)
  2965. SFwd (Open-wide cp [3.0?] by James W. Walker)
  2966. SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
  2967. SNIT (Snitch ext [1.0] by Mitch Jones)
  2968. SPAL (SpeakAlert cp [1.0.5?] by Brian Stern)
  2969. SPLO (SpigotVDIG ext [1.0] by SuperMac Technology)
  2970. ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
  2971. STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
  2972. TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
  2973. Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
  2974. UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by
  2975.       Keisuke Hara)
  2976.      See also FtCg selector.
  2977. View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
  2978.      gestaltViewerEngine
  2979. vmFn (RAM Doubler [1.0] by Connectix Corporation)
  2980.      Seems to return a memory address, perhaps to a function to control
  2981.      Virtual Memory?
  2982.  
  2983.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  2984. WARE (???)
  2985. WREO (Replace Existing Options cp [???] by Jonathon Summers)
  2986.  
  2987.      NOTE: The W is actually the option-w character (ASCII $B7).
  2988. Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
  2989.  
  2990.      NOTE: The W is actually the option-w character (ASCII $B7).
  2991. *Men (OtherMenu ext [1.0] by James W. Walker)
  2992.  
  2993. Gestalt Problems
  2994. ================
  2995. This section lists all known problems related to the Gestalt selectors.
  2996. Each problem is also listed with each of the selectors in the chapters
  2997. above. The table below provides an overview.
  2998.  
  2999. ===========================================================================
  3000. Overview Gestalt selector problems
  3001. ===========================================================================
  3002. Software                 Code  Problem                           Status
  3003. ---------------------------------------------------------------------------
  3004. Apple Photo Access ext   kpcd  always returns $FFFFFFF7          R unclear
  3005. AppleScript ext          ascv  different formats version         R problem?
  3006. AppleTalk                atkv  majorRev of version in hex          problem?
  3007. Color Picker ext         cpkr  incorrect return values?            problem?
  3008. Easy Access cp           easy  incorrect return values           C unknown
  3009. Icon Utilities code      icon  not installed                     C SYS 712?
  3010. Link Tool Mgr 2.0 ext    ltma  incorrect version value?          R problem?
  3011. PowerTalk ext/Control Strip 1.0 cp
  3012.                          sdvr  same selector for both?           C CS 1.0?>
  3013. Shared Library Mgr ext   aslm  incorrect version value?            problem?
  3014. Speech Recognition ext   srta, srtb
  3015.                                installed even if no SR possible  R unclear
  3016. System (enablers)        *ALL* Gestalt Mgr with System 7.1.2     C SYS 7.5>
  3017.                          alis  QT part. installs but no selector C ok
  3018.                          conn  not installed with System 6         problem?
  3019.                          cput  incorrect return values 68K       C unclear
  3020.                          ctbv  returned 1.1 while ROM has 1.0    C SU 3.0 >
  3021.                          fs    QT part. installs but no selector C ok
  3022.                          intd  bit 1 (disk spon up) not set      R problem?
  3023.                          kbd   Adjustable Keyboard incorrect     C SU 2.0 >
  3024.                                not installed on PM7100 (7.1.2)     unclear
  3025.                          qdrw  HasColor set on B/W machines (7.0)C unknown
  3026.                          rsrc  PartialRsrcs not set with 7.0     C 7.1 >
  3027.                          sltc  No information on IIsi slot       C never?
  3028.                          sysv  KanjiTalk 6.0.7 incorrect return value
  3029.                                                                  C sysvINIT
  3030.                                System 6.0.8 returns $0607          never
  3031.                                System 7.1.2/PPC card returns 0710  unclear
  3032. System/Apple Event ext   evnt  constants overlap                 R unclear
  3033. ---------------------------------------------------------------------------
  3034. R       = unconfirmed but known to be reported to Apple
  3035. C       = confirmed
  3036. unclear = unclear if it will ever be fixed
  3037. unknown = unknown when it will be fixed
  3038.  
  3039. Gestalt Manager Calls
  3040. =====================
  3041. All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
  3042. in this chapter.
  3043.  
  3044. Gestalt Manager Routines
  3045. ------------------------
  3046. The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
  3047. listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
  3048. documented.
  3049.  
  3050. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3051.      Available since System 6.0.4.
  3052.      Trap Macro
  3053.        _Gestalt ($A1AD)
  3054.      Registers on entry   D0: selector code
  3055.      Registers on exit    A0: response
  3056.                           D0: result code
  3057.      Result codes
  3058.        noErr                       0 No error
  3059.        gestaltUnknownErr       -5550 Could not obtain the response
  3060.        gestaltUndefSelectorErr -5551 Undefined selector
  3061. FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
  3062.      Available since System 6.0.4.
  3063.      Trap Macro
  3064.        _NewGestalt ($A3AD)
  3065.      Registers on entry   A0: address of new selector function
  3066.                           D0: selector code
  3067.      Registers on exit    D0: result code
  3068.      Result codes
  3069.        noErr                       0 No error
  3070.        memFullErr               -108 Ran out of memory
  3071.        gestaltDupSelectorErr   -5552 Selector already exists
  3072.        gestaltLocationErr      -5553 Function not in system heap
  3073. FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
  3074.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3075.      Available since System 6.0.4.
  3076.      Trap Macro 
  3077.        _ReplaceGestalt ($A5AD)
  3078.      Registers on entry   A0: address of new selector function
  3079.                           D0: selector code
  3080.      Registers on exit    A0: address of old selector function
  3081.                           D0: result code
  3082.      Result codes
  3083.        noErr                       0 No error
  3084.        gestaltUndefSelectorErr -5551 Undefined selector
  3085.        gestaltLocationErr      -5553 Function not in system heap
  3086. #define CallSelectorFunctionProc(userRoutine, selector, response)  \
  3087.         (*userRoutine)(selector, response)
  3088.      Trap Macro 
  3089.        ??? (???)
  3090.      Registers on entry   ???
  3091.      Registers on exit    ???
  3092.      Result codes
  3093.        noErr                       0 No error
  3094.        ???                       ??? ???
  3095. #define NewSelectorFunctionProc(userRoutine)  \
  3096.         (SelectorFunctionUPP)(userRoutine)
  3097.      Trap Macro 
  3098.        ??? (???)
  3099.      Registers on entry   ???
  3100.      Registers on exit    ???
  3101.      Result codes
  3102.        noErr                       0 No error
  3103.        ???                       ??? ???
  3104.          
  3105. Undocumented Gestalt Manager Routines
  3106. -------------------------------------
  3107. FUNCTION? GestaltDispatch? (???):OSErr;?
  3108.      Trap Macro
  3109.        _GestaltDispatch ($A0AD)
  3110.      Registers on entry   ???
  3111.      Registers on exit    ???
  3112.      Result codes
  3113.        noErr                       0 No error
  3114.        ???
  3115.  
  3116.      NOTE:
  3117.      Found in the MPW, THINK C and THINK Pascal Traps Interface file
  3118.      on 'Bookmark CD 14'.
  3119.      Available since System 6.0.4 but code will always return error -50
  3120.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  3121. FUNCTION? GetGestaltProcPtr? (selector?: OSType;
  3122.                               var selectorfunction: ProcPtr): OSErr;?
  3123.      Trap Macro
  3124.        _GetGestaltProcPtr ($A7AD)
  3125.      Registers on entry   D0: selector code?
  3126.      Registers on exit    ??: address of selector function
  3127.      Result codes
  3128.        noErr                       0 No error
  3129.        ???
  3130.  
  3131.      NOTE:
  3132.      Found in the MPW Traps Interface file on 'Bookmark CD 14'.
  3133.      Available since System 6.0.4 but code will always return error -50
  3134.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  3135.      I (Rene Ros) have written Pascal code to do what this system call
  3136.      probably is planned to do in the future.
  3137.  
  3138. Gestalt Value Routines
  3139. ----------------------
  3140. Please note the GestaltValue routines are currently invoked through a
  3141. library, and only in the future will GestaltValue be moved into the OS
  3142. proper. The GestaltValue functions are stack based and don't use registers.
  3143. The GestaltValue library first checks to see if trap $ABF1 is implemented
  3144. (not with any system software available). If trap $ABF1 is implemented, all
  3145. calls to the library are routed to this trap, otherwise the library uses
  3146. embedded code.
  3147.  
  3148. WARNING:
  3149. The GestaltValue library distributed originally checks for the wrong trap
  3150. (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
  3151. trap is installed by the Thread Manager extension. See the Related Software
  3152. chapter for availability (also on mail archive server).
  3153. (Most info about the GestaltValue functions was provided by
  3154. Marco Piovanelli and Dave Radcliffe).
  3155.  
  3156. FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  3157.      Available as glue code.
  3158.      Trap Macro                      Selector
  3159.        _GestaltValueDispatch ($ABF1) $0401
  3160.      Result codes
  3161.        noErr                       0 No error
  3162.        unimpErr                   -4 Unimplemented core routine
  3163.        memFullErr               -108 Ran out of memory
  3164.        (and other memory errors)
  3165.        gestaltDupSelectorErr   -5552 Selector already exists
  3166. FUNCTION ReplaceGestaltValue (selector: OSType;
  3167.                               replacementValue: LongInt): OSErr;
  3168.      Available as glue code.
  3169.      Trap Macro                      Selector
  3170.        _GestaltValueDispatch ($ABF1) $0402
  3171.      Result codes
  3172.        noErr                       0 No error
  3173.        unimpErr                   -4 Unimplemented core routine
  3174.        memFullErr               -108 Ran out of memory
  3175.        (and other memory errors)
  3176.        gestaltUndefSelectorErr -5551 Undefined selector
  3177. FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
  3178.      Available as glue code.
  3179.      Trap Macro                      Selector
  3180.        _GestaltValueDispatch ($ABF1) $0203
  3181.      Result codes
  3182.        noErr                       0 No error
  3183.        unimpErr                   -4 Unimplemented core routine
  3184.        gestaltUndefSelectorErr -5551 Undefined selector
  3185.  
  3186. History
  3187. =======
  3188. This chapter contains a short overview about the history of the Gestalt
  3189. Manager and its predecessors.
  3190.  
  3191. Environs
  3192. --------
  3193. PROCEDURE Environs (VAR rom,machine: INTEGER);
  3194.  
  3195. With the introduction of the Macintosh the system routine 'Environs' was
  3196. introduced. It allowed to obtain two pieces of information: the ROM version
  3197. and a value to indicate the machinetype. This "ROM oriented" way soon
  3198. appeared to be insufficient when the range of Macintosh hardware and
  3199. software became more diverse.
  3200.  
  3201. SysEnvirons
  3202. -----------
  3203. FUNCTION SysEnvirons (versionRequested: INTEGER;
  3204.                       VAR theWorld: SysEnvRec): OSErr;
  3205.  
  3206. With System 4.1 a new system routine was introduced which allowed the
  3207. programmer to obtain more information about the current configuration.
  3208. Upon completion SysEnvirons filled the SysEnvRec with the information.
  3209. This was however an "all-or-nothing" situation, it was not possible to
  3210. obtain just one piece of information.
  3211. To allow for larger system environment records with more information one
  3212. needed to specify the version number of the system environment record. The
  3213. last version, introduced with System 6, was version 2 which had nine fields.
  3214.  
  3215. Gestalt
  3216. -------
  3217. FUNCTION Gestalt (code: LONGINT; VAR feature: LONGINT): OSErr;
  3218.  
  3219. You may wonder how one can be so stupid to list the Gestalt routine wrong...
  3220. However, this is how the Gestalt routine was presented to developers in
  3221. the Preliminairy Developer Note regarding System 7 in 1989.
  3222. There was no selector of type OSType as we known it today. Instead a list
  3223. of numerical constants was used, like:
  3224.  
  3225.      zVersion    = $1;   { Gestalt Version }
  3226.      zMachType   = $100; { machine type }
  3227.      zSystemVers = $101; { system file version }
  3228.  
  3229. and nine others.
  3230. But the principle used with todays Gestalt routine was there: request one
  3231. specific piece of information and you'll get it. Nothing more and nothing
  3232. less. Back then it wasn't the Gestalt Manager since there was only one
  3233. routine. Both the NewGestalt and the ReplaceGestalt did not exist.
  3234. In June 1992 (released in February 1993?) three new functions were added
  3235. to the Gestalt Manager: NewGestaltValue, ReplaceGestaltValue and
  3236. DeleteGestaltValue
  3237.  
  3238. Reports
  3239. =======
  3240. When someone reports some findings involving several selectors and/or a
  3241. report is too long to include with the selector entry above, that report
  3242. is listed here. They should be as short as possible with the maximum
  3243. amount of information.
  3244.  
  3245. AppleShare File & Print Server selector codes
  3246. ---------------------------------------------
  3247. The selectors are defined when the application has run. If it is still
  3248. running (or wasn't properly quit) the response is one. When the application
  3249. has properly quit the response is zero.
  3250.      admn AppleShare Admin
  3251.      asps AppleShare Print Server
  3252.      hgfd AppleShare File Server
  3253. (these three are undocumented)
  3254.  
  3255. AppleTalk
  3256. ---------
  3257. With the release of the System 7 Tuner product, AppleTalk will not be
  3258. loaded at startup, if prior to the previous shutdown AppleTalk was turned
  3259. off in the Chooser. Under this circumstance, the 'atkv' selector is not
  3260. available. If the 'atkv' selector is not available under System 7, this is
  3261. an indicator that AppleTalk cannot be turned on without doing so in the
  3262. Chooser and rebooting the system. *AT02
  3263.  
  3264. Copy protection using Gestalt
  3265. -----------------------------
  3266. In Develop 17 Brigham Stevens suggests to use Gestalt and FindFolder as a
  3267. way to implement copy protection in the most compatible way possible.
  3268. By determining several characteristics at installation from the Gestalt Mgr
  3269. and the DirID of the System Folder with FindFolder you can check for this
  3270. info later. When is has changed you can then ask for the serial number
  3271. or a password again. (Rene Ros)
  3272.  
  3273. Environs & SysEnvirons
  3274. ----------------------
  3275. Using Macsbug it is very easy to determine that the SysEnvirons function
  3276. uses the Gestalt Manager to fill the fields of the system environment
  3277. record. So, when you install your own gestalt definitions by using the
  3278. ReplaceGestalt function this will also change the information returned
  3279. by SysEnvirons.
  3280. The older Environs function doesn't use the Gestalt Mgr and the code
  3281. seems to look only at two values in ROM. (Rene Ros)
  3282.  
  3283. Executor Mac-emulator
  3284. ---------------------
  3285. Executor is a Macintosh Emulator for DOS machines, published by
  3286. Abacus Research and Development, Inc. (1993/1994). The Gestalt Manager is
  3287. also emulated and the version I have seen (on a 486DX) says it's a MacPlus
  3288. with a 68LC040 processor with MMU. The 'sysv' selector returns 0x607 but
  3289. it also lists a lot of selectors usually not installed by 6.0.7. Like
  3290. the 'edtn' and 'stdf' selectors. For those it then simply returns zero.
  3291. Strangely enough the 'tabl' selector is not installed, but this doesn't
  3292. confuse the Gestalt! application! (Rene Ros)
  3293.  
  3294. GestaltValue
  3295. ------------
  3296. The first time you call NewGestaltValue, the library installs two non-
  3297. relocatable blocks in the system heap and the 'gval' gestalt selector. One
  3298. of the blocks is filled with code: it's actually a gestalt definition that
  3299. implements GestaltValue's shared mechanism. The second block contains the
  3300. selectors and values GestaltValue manages. The response returned by the
  3301. 'gval' selector is a pointer to the second non-relocatable block in the
  3302. system heap. (Marco Piovanelli)
  3303.      
  3304. Dave Radcliffe wrote on 23 March 1993 regarding some information, about the
  3305. GestalValue glue code, listed with version 1.4 of this list:
  3306. ---------------------------------------------------------------------------
  3307. The information on the _GestaltValue trap ($ABF2) is correct based on the
  3308. glue, but because of a mistake on my part, the glue should be checking for
  3309. $ABF1. A new version of the glue is being distributed on the developer CD
  3310. next month. If developers need the fixed version sooner, or don't have
  3311. access to the CD, they can write to me at:
  3312.  
  3313. radcliff@apple.com
  3314.  
  3315. and I'll send them the fixed version.
  3316. ---------------------------------------------------------------------------
  3317.  
  3318. Glue code
  3319. ---------
  3320. These development/compiler software contain glue-code to handle a few
  3321. selectors even when the Gestalt Manager is not available.
  3322.  
  3323.      THINK C      (5.0 and later)
  3324.      THINK Pascal (4.0 and later)
  3325.      MPW          (3.2 and later)
  3326.  
  3327. The following selectors can be handled by the glue-code, with all others
  3328. an error (gestaltUndefSelectorErr) will be returned.
  3329.  
  3330.      gestaltAppleTalkVersion = 'atlk';
  3331.      gestaltFPUType          = 'fpu ';
  3332.      gestaltKeyboardType     = 'kbd ';
  3333.      gestaltLogicalRAMSize   = 'lram';
  3334.      gestaltMachineType      = 'mach';
  3335.      gestaltMMUType          = 'mmu ';
  3336.      gestaltPhysicalRAMSize  = 'ram ';
  3337.      gestaltProcessorType    = 'proc';
  3338.      gestaltQuickdrawVersion = 'qd  ';
  3339.      gestaltSystemVersion    = 'sysv';
  3340.      gestaltVersion          = 'vers';
  3341.  
  3342. Unless you are using direct calls, ofcourse.
  3343. (Source: THINK Reference 2.0)
  3344.  
  3345. PPC Libraries
  3346. -------------
  3347. Some of the Gestalt selector functions are smart enough to avoid crashing
  3348. when the user removed the library file from the Extensions folder without
  3349. restarting the machine. And some selector functions aren't that smart.
  3350. Safest is to preflight the first call you make into the library (for code
  3351. or data) or include a preflight in your startup. 
  3352. (based on a posting by John Baxter in the comp.sys.mac.programmer Usenet
  3353. newsgroup on Internet.)
  3354.  
  3355. QuickTime
  3356. ---------
  3357. If you install QuickTime under System 6, a major portion of the Alias
  3358. Manager and FSSpec support is also added. But, QT doesn't implement the
  3359. Gestalt selectors because the implementation is not complete. You must
  3360. check for either Alias Mgr or QuickTime. (Michael Hecht)
  3361.  
  3362. These are the limitations for the Alias Mgr installed by QuickTime:
  3363.   - NewAlias will accept fromFile parameter, but it never creates a
  3364.     relative alias.
  3365.   - NewAliasMinimalFromPath and ResolveAliasFile aren't available.
  3366.   - ResolveAlias and UpdateAlias ignore the fromFile parameter.
  3367.   - MatchAlias may be called but the kARMMultVols, kARMSearchMore and
  3368.     kARMSearchRelFirst flags aren't available and ignored if passed.
  3369.     Also, a matchProc will never be called.
  3370.   - Won't mount network volumes.
  3371.  
  3372. And these are the FSSpec calls available with System 6 when QuickTime is
  3373. installed:
  3374.   - FSMakeFSSpec
  3375.   - FSpOpenDF
  3376.   - FSpOpenRF
  3377.   - FSpCreate
  3378.   - FSpDirCreate
  3379.   - FSpDelete
  3380.   - FSpGetFInfo
  3381.   - FSpSetFInfo
  3382.   - FSpSetFLock
  3383.   - FSpRstLock
  3384.   - FSpRename
  3385.   - FSpCatMove
  3386.   - FSpOpenResFile
  3387.   - FSpCreateResFile
  3388.   - FSpGetCatInfo
  3389.   
  3390. See for more information Technical Note M.QT.MovieTB.Q&As (QT 510) and
  3391. Develop 11 magazine on page 122.
  3392.  
  3393. RAM Doubler 1.0
  3394. ---------------
  3395. It looks like RAM Doubler tricks the system in thinking there is virtual
  3396. memory but actually stores it somewhere else in memory instead to disk
  3397. which we are used to before RAM Doubler came around. It also looks like
  3398. this is done in corporation with Apple since a selector installed by
  3399. RAM Doubler is 'vmem' which is all lower-case and thus reserved by Apple.
  3400. In addition the response from this selector is always LongInt('RaM2') which
  3401. is the creator type of RAM Doubler. It seems this selector is used to
  3402. indicate which software is used to extend the capabilities of the Virtual
  3403. Memory Manager.
  3404. RAM Doubler also installs the selector 'vmFn' which seems to be a pointer
  3405. to a function to control RAMDoubler or to obtain information. It looks like
  3406. registers are used to pass parameters to and from that function. D0 perhaps
  3407. holds values 1 to 6 as input and perhaps A0 is used for the return value.
  3408.  
  3409. FUNCTION VMExtensionControl? (selector: Integer; VAR result: LongInt): OSErr;
  3410.      Registers on entry   D0: selector code
  3411.      Registers on exit    A0: result code
  3412.                           D0: error code
  3413.      Result codes
  3414.        noErr                       0 No error
  3415.        invalidSelector?          206 Invalid selector value?
  3416.        ???
  3417.  
  3418. Values used as selector:
  3419. CONST
  3420.      kVMControlType?        = 1;      {type VM extension: RaM2}
  3421.      kVMControlVersion?     = 2;      {version VM extension as BCD}
  3422.      kVMControl???          = 3;      {engine version as BCD?: $0313}
  3423.      kVMControlMemSize?     = 4;      {unknown: Get/SetMemorySize?}
  3424.      kVMControlMemSize?     = 5;      {unknown: Get/SetMemorySize?}
  3425.      kVMControl???          = 6;      {unknown}
  3426.      kVMContolMaxFunctions? = MAXINT; {returns number of valid selectors}
  3427.                                       {or any other value outside the}
  3428.                                       {current 1-6 range}
  3429.  
  3430. Remember: all this is heresay!!!
  3431.  
  3432. Because of all this you can imagine RAM Doubler replaces/installs the
  3433. following System Software selectors (and I think it does):
  3434. lram, pgsz, ram , vm  , vmbs. (Anonymous, Rene Ros)
  3435.  
  3436. Kilo-liners
  3437. ===========
  3438. This chapter will list very small pieces of code which are related to
  3439. any Gestalt Routine.
  3440.  
  3441. Direct Gestalt Calls
  3442. --------------------
  3443. You can use the following code to call directly the Gestalt, NewGestalt and
  3444. ReplaceGestalt traps. In that way the (large) glue code will not be
  3445. installed by your compiler. (Contributions by Lawrence D'Oliveiro and
  3446. Marco Piovanelli).
  3447.  
  3448. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3449.    inline $225F, $201F, $A1AD, $2288, $3E80;
  3450.       { move.l (sp)+, a1 }
  3451.       { move.l (sp)+, d0 }
  3452.       { _Gestalt }
  3453.       { move.l a0, (a1) }
  3454.       { move.w d0, (sp) }
  3455.  
  3456. FUNCTION NewGestalt (selector: OSType;
  3457.                      gestaltFunction: ProcPtr): OSErr;
  3458.    inline $205F, $201F, $A3AD, $3E80;
  3459.       { move.l (sp)+, a0 }
  3460.       { move.l (sp)+, d0 }
  3461.       { _NewGestalt }
  3462.       { move.w d0, (sp) }
  3463.  
  3464. FUNCTION ReplaceGestalt (selector: OSType;
  3465.                          gestaltFunction: ProcPtr;
  3466.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3467.    inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
  3468.       { move.l (sp)+, a1 }
  3469.       { move.l (sp)+, a0 }
  3470.       { move.l (sp)+, d0 }
  3471.       { _ReplaceGestalt }
  3472.       { move.l a0, (a1) }
  3473.       { move.w d0, (sp) }
  3474.  
  3475. Direct GestaltValue Calls
  3476. -------------------------
  3477. You can use the following code to call directly the NewGestaltValue,
  3478. ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
  3479. trap is available. *AS04
  3480.  
  3481. FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
  3482.    inline $303C, $0401, $ABF1;
  3483.  
  3484. FUNCTION ReplaceGestaltValue(selector: OSType,
  3485.                              replacementValue: LongInt): OSErr;
  3486.    inline $303C, $0402, $ABF1;
  3487.      
  3488. FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
  3489.    inline $303C, $0203, $ABF1;
  3490.  
  3491. GestaltSelectorZero
  3492. -------------------
  3493. With all the selectors that are supposed to return non-zero values if
  3494. installed, it may be helpful to have an utility routine that returns a zero
  3495. value (instead of an error) if a selector isn't installed. It's short and
  3496. sweet because it makes a direct call to the _Gestalt trap; of course this
  3497. means you can't use it on systems earlier than 6.0.4.
  3498. (Contributed by Lawrence D'Oliveiro)
  3499.  
  3500. FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
  3501. {returns the value of the specified Gestalt selector,}
  3502. {or zero if unknown.}
  3503.    inline $201F, $A1AD, $6702, $91C8, $2E88;
  3504.       { move.l (sp)+, d0 }
  3505.       { _Gestalt }
  3506.       { beq.s @2 }
  3507.       { sub.l a0, a0 }
  3508.       { @2: move.l a0, (sp) }
  3509.  
  3510. GestaltBitTest
  3511. --------------
  3512. The GestaltBitTest is a piece of inline assembly code which tests if the
  3513. specified bit is set in the value from the specified Gestalt selector
  3514. (false if the Gestalt call returns an error).
  3515.  
  3516. Example:
  3517.     GestaltBitTest(gestaltAppleEventsAttr, gestaltAppleEventsPresent)
  3518.  
  3519. (Contributed by Lawrence D'Oliveiro)
  3520.  
  3521. FUNCTION GestaltBitTest(Selector: OSType; BitNr: Integer): Boolean;
  3522.    inline
  3523.       $321F, $201F, $A1AD, $6702, $91C8, $2008, $0300, $56C0, $4400, $1E80
  3524.       { move.w (sp)+, d1 }
  3525.       { move.l (sp)+, d0 }
  3526.       { _Gestalt }
  3527.       { beq.s @2 }
  3528.       { sub.l a0, a0 }
  3529.       { @2: move.l a0, d0 }
  3530.       { btst d1, d0 }
  3531.       { sne.b d0 }
  3532.       { neg.b d0 }
  3533.       { move.b d0, (sp) }
  3534.  
  3535. Call Gestalt Function Direct
  3536. ----------------------------
  3537. Suppose you have just loaded an GDEF resource, or replaced one and keep the
  3538. original around and store a pointer to it somewhere private. Suppose next,
  3539. you want to call it to obtain a response without using yet another selector.
  3540. Thats what the following inline code is useful for. Just pass it the
  3541. usual selector and result parameters but also a pointer to the GDEF
  3542. (Lock it if it's a relocatable block).
  3543.  
  3544. FUNCTION CallGestaltDEF (selector: OSType;
  3545.                          var result: LongInt;
  3546.                          aRoutine: ProcPtr): OSErr;
  3547.     inline $205F, $4E90;
  3548.        { move.l (sp)+, a0 }
  3549.        { jsr (a0) }
  3550.  
  3551. Abbreviations
  3552. =============
  3553. A/UX     - Apple UNIX
  3554. ADB      - Apple Desktop Bus
  3555. AMU      - Apple Memory Unit?
  3556. ARTA     - Apple Real Time Architecture
  3557. AS       - AppleShare
  3558. ASC      - Apple Sound Chip
  3559. ASCII    - American Standard Code for Information Interchange
  3560. ASIC     - Application specfic integrated circuit
  3561. AWAC     - Audio Waveform Amplifier and Converter
  3562. Caboose  - processor that manages the keyswitch, system power,
  3563.            the real-time clock, and parameter RAM
  3564. CDEF     - Control DEFinition (code resource)
  3565. CISC     - Complex Instruction Set Computer (compare with RISC)
  3566. CLUT/DAC - color look-up table and digital-to-analog converter IC
  3567. Combo    - chip, combines the functions of the SCC and the SCSI controller
  3568. CPU      - Central Processing Unit
  3569. DAFB     - Direct Access Frame Buffer
  3570. DAV      - Digital Audio Video (connector)
  3571. DDC      - Display Driver Chip
  3572. DFAC     - Digitally Filtered Audio Chip
  3573. DITL     - Dialog ITems List (resource)
  3574. DLL      - Dynamically Linkable Library
  3575. DMA      - Direct Memory Access
  3576. DN       - Developer Note
  3577. DOS      - Disk Operating System (to run a computer???)
  3578. DRAM     - Dynamic RAM
  3579. DSP      - Digital Signal Processor
  3580. EASC     - Enhanced Apple Sound Chip
  3581. FAT      - File Allocation Table (?)
  3582. FMC      - Fitch Memory Controller
  3583. FPU      - Floating Point Unit
  3584. GDEF     - Gestalt DEFinition (code resource)
  3585. GPi      - General Purpose Input
  3586. IM       - Inside Macintosh
  3587. IOP      - Input/Output Processor
  3588. IWM      - Integrated Woz Machine
  3589. JDB      - Junction Data Bus
  3590. JMC      - Jaws Memory Controller
  3591. MacOS    - Macintosh Operating System
  3592. MCU      - Memory Control Unit
  3593. MAE      - Macintosh Application Environment (Mac system on UNIX RISC)
  3594. MEO      - Macintosh Easy Open
  3595. MMU      - Memory Management Unit
  3596. NBP      - Name Binding Protocol
  3597. OCE      - Open Colloboration Environment
  3598. OMC      - Orwell Memory Controller
  3599. OS       - Operating System
  3600. OSA      - Open Scripting Architecture:
  3601.            OSA is the Open Scripting Architecture. It is the layer upon
  3602.            which all scripting languages sit and the method by which
  3603.            applications call scripts. (Jon Pugh)
  3604. OSL      - Object Support Library
  3605. OSS      - Operating System Support chip
  3606. PB       - PowerBook
  3607. PCI      - Peripheral Component Interconnect bus
  3608. PDS      - Processor-Direct Slot
  3609. PGC      - Parity Generator Chip
  3610. PMMU     - Paged Memory Management Unit
  3611. PSRAM    - Pseudo Static RAM
  3612. PPC      - Process-to-Process Communication, also:
  3613.            PowerPC
  3614. ProDOS   - Professional Disk Operating System? (OS for the Apple //)
  3615. PWM      - Pulse-Width Modulated?
  3616. QD       - QuickDraw
  3617. RAM      - Random Access Memory (see DRAM & SRAM, compare ROM)
  3618. RAMDAC   - Random Access Memory, Digital/Analog Converter
  3619. RBV      - RAM-Based Video
  3620. RISC     - Reduced Instruction Set Computer (compare with CISC)
  3621. ROM      - Read Only Memory
  3622. RSB      - Ram Based Sound
  3623. RTC chip - Real-Time Clock chip
  3624. RPU      - Random Parity Unit
  3625. SCC      - Serial Communications Controller
  3626. SCSI     - Small Computer System Interface
  3627. SDP      - Standard Directory Package
  3628. SIMM     - Single In-line Memory Module
  3629. SMP      - Standard Mailer Package
  3630. Sonic    - chip for built-in Ethernet
  3631. Sporty   - a custom IC that provides sound output amplification functions
  3632. SRAM     - Static RAM
  3633. SWIM     - Super-Wozniak Integrated Machine OR
  3634.            Sanders-Wozniak Integrated Machine
  3635. TE       - TextEdit (32Kb limited built-in text-engine)
  3636. TN       - Technical Note
  3637. TTS      - Text-To-Speech
  3638. VIA      - Versatile Interface Adapter
  3639. VRAM     - Video RAM
  3640. VM       - Virtual Memory
  3641. VDAC     - Video Digital to Analog Converter
  3642. YANCC    - Yet Another NuBus Controller Chip
  3643.  
  3644. FA       - File Access
  3645. RA       - Remote Access
  3646.  
  3647. Sources
  3648. =======
  3649. A    Apple Computer, Inc.
  3650. AD    Documentation & Magazines
  3651. AD01   MacTCP Programmer's Guide
  3652. AD02   AppleTalk Remote Access API External Reference Specification
  3653. AD03   Macintosh Easy Open programmer's docs
  3654. AD04   Thread Manager 1.1 and 2.0 documentation
  3655. AD05   Drag Manager Programmer's Guide
  3656. AD06   Sound Manager Tech Note on BookMark CD 16
  3657. AD07   Develop 17, p. 123
  3658. AD08   MAE Compatibility Hints
  3659. AD09   Color Matching documentation on ETO 14 and BookMark 18
  3660. AD10   OS Compatability doc on WWDC 1994 CD
  3661. AD11   IM PPC System Software
  3662. AD12   IM OS Utilities
  3663. AD13   Develop 19, p. 105
  3664. AD14   File System Manager Guide, Sep. 1994
  3665.  
  3666. AS    Software, source code & header files
  3667. AS01   QuickTime ImageCompression source files
  3668. AS02   CommToolbox 1.1 source files
  3669. AS03   MPW Interface files on Bookmark CD 14
  3670. AS04   GestaltEqu header file on ETO 12
  3671. AS05   GestaltEqu header file on ETO 13
  3672. AS06   GestaltEqu header file on BookMark CD 17
  3673. AS07   TSMTE header file on BookMark CD 17
  3674. AS08   AppleScript header file on ETO 14
  3675. AS09   Drag header file on ETO 14
  3676. AS10   XTNDInterface header file on ETO 14
  3677. AS11   ControlStrip header file on BookMark CD 19
  3678. AS12   AppleGuide header file on BookMark CD 18
  3679.  
  3680. AT    Technical Notes
  3681. AT01   TN M.OV.GestaltSysenvirons (OV 16), May 1987
  3682. AT02   TN M.NW.AppleTalk2 (NW 13), Feb.1992
  3683. AT03   TN M.DV.CD-ROMDriver (DV 22), May 1993
  3684. AT04   TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
  3685. AT05   TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
  3686. AT06   TN OS 05 - System Update 3.0, July 1993/Rev. May 1994
  3687. AT07   TN M.DV.CuriousSCSI, May 1994
  3688.  
  3689. S    Symantec Corp.
  3690. S01    THINK Pascal 4.0 interface files
  3691. S02    THINK C GestaltGlue source files
  3692. S03    THINK Reference 1.0 and 2.0
  3693.  
  3694. M    Miscellaneous sources
  3695. M01    Gestalt DA 0.4 1990 (Carl C.Hewitt)
  3696. M02    Gestalt dcmd 1.0 (Eric Simenel, Apple Computer France)
  3697. M03    sysvINIT source files (Apple Computer Japan, Inc.)
  3698. M04    TMON Professional Reference Manual, p.192 (ICOM Simulations)
  3699. M05    AfterDarkGestalt.h file (Berkeley Systems, Inc.)
  3700. M06    SoftwareFPU Programmer Info (John Neil & Associates)
  3701.  
  3702. Related Software
  3703. ================
  3704. Listed below is software which may be of interest to developers because
  3705. they are a tool providing information from the Gestalt Manager, include
  3706. Gestalt-related source code or provide additional capabilities to the
  3707. Gestalt Manager. Included is also were you can find or get a copy.
  3708. All software available on sumex-aim.stanford.edu is also available on the
  3709. INFO-MAC CD-ROM by Pacific HiTech, Inc. The INTERNET FTP-sites mentioned
  3710. may have one or more mirror sites as well. Locations on CompuServe are not
  3711. included.
  3712. Some software listed below can also be found at the mail-archive server,
  3713. see the chapter 'Availability' for more information.
  3714.  
  3715. 5thColumn, GestaltProbe (Kamran Golriz, Apple Computer Inc.)
  3716.      Extension with MPW Tools to query other mac on a network, one of
  3717.      the tools is GestaltProbe.
  3718.  
  3719.      CD-ROM: Bookmark CD (Apple Developer Group)
  3720.                :Tools & Applications:Network & Communications:5th Column:
  3721. AEgestalt (Kent Sandvik, Apple Computer Inc.)
  3722.      Uses Apple Events to get Gestalt response from remote machine,
  3723.      includes C-source. (Requires color?? Doesn't run on MacPlus)
  3724.  
  3725.      FTP:    ftp.apple.com [130.43.2.3]
  3726.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  3727.                                    aegestalt-1-0.hqx
  3728.      CD-ROM: Bookmark CD (Apple Developer Group)
  3729.                :Documentation & Samples:Sample Code:Snippets:
  3730.                  Platforms & Tools:AEGestalt 1.0:
  3731. AfterDark Gestalt header file (Berkeley Systems, Inc.)
  3732.      Header file for using the gestalt selectors used by many screensavers.
  3733.  
  3734.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3735.                archive get src/AfterDarkGestalt.h
  3736.              brklysystm@aol.com (Berkeley Systems Mac Tech Support)
  3737.                ask them nicely to email the AfterDarkGestalt.h file.
  3738. DisplayGestalt (Craig Marciniak)
  3739.      Small application displays configuration using Gestalt Mgr, includes
  3740.      C-source.
  3741.  
  3742.      FTP:    mac.archive.umich.edu [141.211.120.11]
  3743.              ftp://mac.archive.umich.edu/development/libraries/
  3744.                                          displaygestalt.cpt.hqx
  3745.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3746.                archive get software/displaygestalt.cpt.hqx
  3747. Feature Teller 1.0 (Jennifer Minge, Apple Computer Inc.)
  3748.      Sample application quering Gestalt Mgr (or SysEnvirons if not
  3749.      available). Includes THINK Pascal source.
  3750.  
  3751.      CD-ROM: Bookmark CD (Apple Developer Group)
  3752.                :Tools & Applications:OS/Toolbox:Feature Teller 1.0:
  3753. Gestalt! 3.0 (Roland Mansson)
  3754.      Displays responses from installed selectors.
  3755.  
  3756.      FTP:    ftp.lu.se [130.235.132.90]
  3757.                ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  3758.              sumex-aim.stanford.edu [36.44.0.6]
  3759.                ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  3760.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3761.                archive get software/gestalt-30-app.cpt.hqx
  3762. GestaltDA 0.4 (Carl C. Hewitt, Apple Computer Inc.)
  3763.      Displays responses from installed selectors.
  3764.  
  3765.      CD-ROM: Bookmark CD (Apple Developer Group)
  3766.                :Tools & Applications:OS/Toolbox:GestaltDA 0.4
  3767. Gestalt DCMD (Apple Computer Inc.)
  3768.      This dcmd (debugger command for MacsBug) allows you to "use" Gestalt
  3769.      when you're in MacsBug.
  3770.  
  3771.      FTP:    ftp.apple.com [130.43.2.3]
  3772.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  3773.                                    gestalt-dcmd.hqx
  3774.      CD-ROM: Bookmark CD (Apple Developer Group)
  3775.                :Documentation & Samples:Sample Code:Snippets:
  3776.                  Platforms & Tools:Gestalt dcmd:
  3777. Gestalt Environment 7
  3778.      Application to list a number of installed selectors.
  3779.  
  3780.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3781.                archive get software/ge7.hqx
  3782. GestaltExt (Andre Cavegn)
  3783.      External for 4TH Dimension Relational Database application from
  3784.      ACI/ACI US.
  3785.  
  3786.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3787.                ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
  3788.                                             gestalt-ext.hqx
  3789.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3790.                  archive get software/gestalt-ext.hqx
  3791. GestaltGlue (???)
  3792.      Glue code and interface in C and assembly.
  3793.  
  3794.      CD-ROM: Bookmark CD (Apple Developer Group)
  3795.                :Documentation & Samples:Sample Code:System 7.0 samples:
  3796.                  DTS.Utilities:Gestalt*
  3797. Gestalt Pro 1.1.2 (Rene G.A. Ros)
  3798.      External for 4TH Dimension Relational Database application from
  3799.      ACI/ACI US.
  3800.  
  3801.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3802.                ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/
  3803.                                             gestalt-pro-112.hqx
  3804.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3805.                archive get software/gestalt-pro-112-.sit.hqx
  3806. GestaltTalk (Brigham Stevens, Apple Computer DTS)
  3807.      Code part of Notification Hacks to show how you can communicate
  3808.      between an application and an INIT using the Gestalt Mgr. Includes
  3809.      C-source files.
  3810.  
  3811.      CD-ROM: Bookmark CD (Apple Developer Group)
  3812.                :Documentation & Samples:Sample Code:Snippets:
  3813.                  Toolbox:Notification Hacks:GestaltTalk:
  3814. GestaltValue (anonymous, Apple Computer Inc.)
  3815.      Library and interface for use of the GestaltValue functions.
  3816.  
  3817.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3818.                ftp://sumex-aim.stanford.edu/info-mac/dev/
  3819.                                             gestalt-value-lib.hqx
  3820.      EMAIL:  Dave Radcliffe, Mac DTS (radcliff@apple.com)
  3821.                gestalt-selectors-list-request@bio.vu.nl
  3822.                  archive get software/gestaltvalue-lib.hqx
  3823.      CD-ROM: Bookmark CD (Apple Developer Group)
  3824.                :Tools & Applications:OS/Toolbox:GestaltValue:
  3825. GestaltWatch ext 1.0a1 (Scott Bronson)
  3826.      Tracks all calls to NewGestalt and ReplaceGestalt traps.
  3827.      Not yet available.
  3828. Gestalt XFCN 3.2.1 (Jeff Iverson)
  3829.      Hypercard XFCN to query the Gestalt Manager.
  3830.  
  3831.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3832.                ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  3833.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3834.                archive get software/gestalt-321-xfcn.hqx
  3835. Gestaltzeigen appl 1.0 (B. Kevin Hardman)
  3836.      Displays responses from installed selectors and any bit
  3837.      interpretation. Not yet available.
  3838. Get Gestalt (AppleScript addition) 1.2 by Mark Alldritt
  3839.      Provides access to the Gestalt Manager for AppleScript scripts.
  3840.  
  3841.      FTP:    gaea.kgs.ukans.edu [129.237.140.40]
  3842.                ftp://gaea.kgs.ukans.edu/applescript/osaxen/
  3843.                                         ScriptTools1.3.sit.hqx ?
  3844.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3845.                archive get software/scripttools-13.sit.hqx
  3846. Go Gestalt appl 1.0b (Paul Reznick)
  3847.      Displays information obtained thru the Gestalt Mgr. 
  3848.  
  3849.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3850.                archive get software/go-gestalt-10b.sit.hqx
  3851. Informant XFCN 1.0 (Jeff Iverson)
  3852.      Hypercard XFCN to query the Gestalt Manager.
  3853.  
  3854.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3855.                ftp://sumex-aim.stanford.edu/info-mac/card/
  3856.                                             information-10-xfcn-demo.hqx
  3857.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3858.                archive get software/information-10-xfcn-demo.hqx
  3859. Mac Identifier 1.0 (Flux Software, written by Maurice Volaski)
  3860.      Fixes the problem of System 7.5 which doesn't display the real
  3861.      machine type name anymore.
  3862.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3863.                ftp://sumex-aim.stanford.edu/info-mac/gui/
  3864.                                             mac-identifier-10.hqx
  3865.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3866.                archive get software/mac-identifier-10.hqx
  3867. SAVR Gestalt (Thomas Reed)
  3868.      Source code (C) demonstrating how to install the Screen saver
  3869.      Gestalt selector 'SAVR'.
  3870.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3871.                archive get src/gestalt-savr.txt
  3872. Tattle-Tech appl (Decision Makers Software, Inc.)
  3873.      Uses Gestalt manager extensively to display all know information.
  3874.  
  3875.      FTP:    sumex-aim.stanford.edu [171.65.4.3]
  3876.                ftp://sumex-aim.stanford.edu/info-mac/cfg/
  3877.                                             tattle-tech*.hqx
  3878.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3879.                archive get software/tattle-tech*.hqx
  3880. TechTool appl 1.0.4 (Micromat Computer Systems)
  3881.      Application to reset PRAM, rebuild DTDB and show Gestalt info.
  3882.  
  3883.      EMAIL:  gestalt-selectors-list-request@bio.vu.nl
  3884.                archive get software/tech-tool-104.hqx
  3885. Technical Notes: (Apple Computer Inc.)
  3886.      M.OV.GestaltSysenvirons (Gestalt & SysEnvirons)
  3887.      M.NW.AppleTalk2         (AppleTalk The Rest Of the Story)
  3888.      M.OS.GestaltMgr.Q&As    (Gestalt Manager Questions and Answers)
  3889.  
  3890.      FTP:    ftp.apple.com [130.43.2.3]
  3891.                ftp://ftp.apple.com/dts/mac/tn/overview.ov/
  3892.                                    ov-16-gestalt-and-sysenvir.hqx
  3893.                ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
  3894.                ftp://ftp.apple.com/dts/mac/tn/operating.system.os/
  3895.                                    os-505-gestalt-mgr-qas.hqx 
  3896.      CD-ROM: Bookmark CD (Apple Developer Group)
  3897.                :Documentation & Samples:Mac Tech Notes:
  3898.                  Overview (OV):OV 16 - Gestalt & SysEnvirons
  3899.                  Networking (NW):NW 13 - AppleTalk The Rest Of
  3900.                  Operating System (OS):OS 505 - Gestalt Mgr Q&As
  3901. Test Gestalt (Apple Computer Inc.)
  3902.      Examples to test for QuickDraw version and Virtual Memory status,
  3903.      includes C-source.
  3904.  
  3905.      FTP:    ftp.apple.com [130.43.2.3]
  3906.                ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/
  3907.                                    testgestalt.hqx
  3908.      CD-ROM: Bookmark CD (Apple Developer Group)
  3909.                :Technical Documentation:Sample Code:Snippets:
  3910.                  Toolbox:TestGestalt:
  3911. Userfunction Gestalt code (Rich Kubota, Apple Computer Inc.)
  3912.      Source code in C for Apple Installer Script writers.
  3913.  
  3914.      FTP:    ftp.apple.com [130.43.2.3]
  3915.                ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/
  3916.                                    userfunction-gestalt.hqx
  3917.      CD-ROM: Bookmark CD (Apple Developer Group)
  3918.                :Technical Documentation:Sample Code:Snippets:
  3919.                  Platforms & Tools:UserFunction Gestalt:
  3920.  
  3921. URL
  3922. ===
  3923. Below are all locations of files listed in the URL format, except those
  3924. which can not be described by an URL. They are listed here again, but now
  3925. without linebreaks. This is the only chapter exceeding the 80 characters
  3926. per line limit.
  3927.  
  3928. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
  3929. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
  3930. ftp://ftp.apple.com/dts/mac/sc/snippets/platforms.tools/userfunction-gestalt.hqx
  3931. ftp://ftp.apple.com/dts/mac/sc/snippets/toolbox/testgestalt.hqx
  3932. ftp://ftp.apple.com/dts/mac/tn/networking.nw/appletalk2.hqx
  3933. ftp://ftp.apple.com/dts/mac/tn/operating.system.os/os-505-gestalt-mgr-qas.hqx 
  3934. ftp://ftp.apple.com/dts/mac/tn/overview.ov/ov-16-gestalt-and-sysenvir.hqx
  3935. ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  3936. ftp://gaea.kgs.ukans.edu/applescript/osaxen/ScriptTools1.3.sit.hqx ?
  3937. ftp://mac.archive.umich.edu/development/libraries/displaygestalt.cpt.hqx
  3938. ftp://merit.edu/pub/ppp/mac/
  3939. ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  3940. ftp://sumex-aim.stanford.edu/info-mac/card/information-10-xfcn-demo.hqx
  3941. ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  3942. ftp://sumex-aim.stanford.edu/info-mac/cfg/tattle-tech*.hqx
  3943. ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-ext.hqx
  3944. ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-pro-112.hqx
  3945. ftp://sumex-aim.stanford.edu/info-mac/dev/gestalt-value-lib.hqx
  3946. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
  3947. ftp://sumex-aim.stanford.edu/info-mac/gui/mac-identifier-10.hqx
  3948. http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  3949.  
  3950. About this list
  3951. ===============
  3952. The Gestalt Manager is a collection of system routines which allows
  3953. applications to test for the availability of software and hardware. Because
  3954. of the increasing number of different software and hardware configurations,
  3955. this is getting an important issue. It probably already is and known by the
  3956. term 'compatability'.
  3957. The Gestalt function allows applications to obtain information about the
  3958. current configuration. Selectors are used to refer to certain information.
  3959. A selector is of type OSType (a four byte value) and usually contain four
  3960. ASCII characters. For example: the selector 'sysv' causes the version of
  3961. the current system is returned. Other functions, NewGestalt and
  3962. ReplaceGestalt, allow programmers to install their own Gestalt selectors.
  3963. Programmers need to know these selectors beforehand to be able to request
  3964. and interpret the value returned by the Gestalt function.
  3965. See for more detailed information on how to use the Gestalt Manager
  3966. routines Inside Macintosh part VI (old series). The new Inside
  3967. Macintosh: Operating System Utilities replaces IM VI.
  3968. When you already have one or more of the new IM issues you may be a bit
  3969. disappointed. I was, because of the very minimal information provided
  3970. regarding the availability of the system routines. Of most routines you
  3971. will find no information on how to test their availability.
  3972.  
  3973. This Gestalt Selectors List intends to list all known selectors, but in
  3974. reality this means it lists all selectors known to the editor.
  3975. I would like to see this list to be a combined effort by different persons
  3976. who have together access to a wide area of information.
  3977. This list may contain (educated?) guesses and perhaps even false
  3978. information, so no guarantee is made about the contents.
  3979. You may use this information freely (see Legal Stuff chapter), but when
  3980. you find information not included with this list; please tell me. If you
  3981. have additions, corrections, comments, suggestions, news about available
  3982. software, etc., mail it me. Please, also mention the source you used,
  3983. if any.
  3984. You can send contributions, remarks, etc. to this email address:
  3985.     gestalt-selectors-list@bio.vu.nl
  3986. If you want to remain anonymous, please mention this and it will be taken
  3987. care of.
  3988. I don't have all the documentation or knowledge and I don't want to, and
  3989. I'am certainly not Mr.Gestalt.
  3990.  
  3991. Availability
  3992. ------------
  3993. If you downloaded this list from CompuServe, a BBS, or any other service,
  3994. you will notice some strange things like 'FTP-sites' which have to do
  3995. with the fact that this list originates from INTERNET.
  3996. You can access the mail archive server also from CompuServe, AOL and
  3997. AppleLink. Contact your network provider for information on how to send
  3998. email to an INTERNET site.
  3999.  
  4000. This list is available in the following ways:
  4001.  
  4002. **INTERNET**
  4003.  
  4004. USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
  4005. This list has become too large to post to c.s.m.p., so starting from
  4006. version 2.2 this list is no longer posted there. Instead an announcement
  4007. will be posted informing were you can find the latest version.
  4008.  
  4009. FTP-site
  4010. sumex-aim.stanford.edu [36.44.0.6]
  4011. Every minor and major version is submitted to the info-mac archives:
  4012.  
  4013. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-XX.hqx
  4014.  
  4015. It is also available on its mirror sites.
  4016. Contact: Info-Mac Moderator (info-mac-request@sumex-aim.stanford.edu)
  4017.  
  4018. FINGER
  4019. Using Finger to obtain the latest version is no longer possible.
  4020.  
  4021. WWW
  4022. The GSL is also avaible for World Wide Web users together with other
  4023. Macintosh FAQs at:
  4024.  
  4025. http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  4026.  
  4027. Contact: Robert Lentz (lentz@rossi.astro.nwu.edu)
  4028.  
  4029. **COMPUSERVE**
  4030.  
  4031. Starting with version 2.0 this list will be uploaded to the
  4032. Macintosh Developers Forum (MACDEV). Only new minor and major versions
  4033. will be uploaded once. It will then appear in the Tools/Debuggers (13)
  4034. section.
  4035.  
  4036. **GENERAL**
  4037.  
  4038. CD-ROM or BBS
  4039. Because of permissions I granted you may get this list from a CD-ROM or via
  4040. a BBS from Internet, CompuServe or a CD-ROM. If you do, and the release was
  4041. more than two months ago, there is probably already a newer version.
  4042.  
  4043. MAILING LIST
  4044. Every person on the mailing list gets automatically an update by email
  4045. whenever there are some changes. If you want to subscribe or unsubscribe to
  4046. this mailing list you need to send an email to this address:
  4047.      gestalt-selectors-list-request@bio.vu.nl
  4048. Then put in the subject line either 'subscribe' or 'unsubscribe'.
  4049.  
  4050. The mailing list is moderated, which means everybody can email to:
  4051.     gestalt-selectors-list@bio.vu.nl
  4052. But only after approval of the moderator the other subscribers will receive
  4053. your posting. This guarantees that no confidential contribution is
  4054. distributed before the moderator sees it.
  4055.  
  4056. This service is only possible to those who have an account on Internet or
  4057. any other network reachable from Internet (CompuServe, AOL, AppleLink,
  4058. Fidonet). I can not provide mailing of printed versions or on disk by
  4059. normal surface mail.
  4060.  
  4061. MAIL ARCHIVE SERVER
  4062. Your can retrieve the latest versions of this list and other software
  4063. by sending an email to this address:
  4064.      gestalt-selectors-list-request@bio.vu.nl
  4065. In the subject line you need to enter 'archive' and then put one command
  4066. behind it or more in the body of your email. These commands can be:
  4067.      help             to get some help on using the archive server
  4068.      ls <dir>         to list the contents of the specified directory
  4069.      get <dir>/<file> to have the specified file sent to you by email.
  4070. To obtain the abstracts of all files available you can use this command:
  4071.      get ABSTRACTS
  4072.  
  4073. Your actions may be logged.
  4074.  
  4075. PRINTED
  4076. If you want this list printed on paper you may want to try a feature
  4077. included with the LaserWriter 8 software. With it you can print four
  4078. pages on a single sheet of paper. When you set the page breaks correct,
  4079. this produces a very neat, little booklet.
  4080.  
  4081. Acknowledgements
  4082. ----------------
  4083. I want to thank the following persons for their contribution to this list:
  4084.  
  4085. ===========================================================================
  4086. Name                                       Internet Email Address
  4087. ---------------------------------------------------------------------------
  4088. Anonymous contributor(s)                   anonymous@secret.cia
  4089. Lonnie R. Abelbeck                         abelbeck@dev.abelbeck.com
  4090. Daniel Azuma                               dazuma@cco.caltech.edu
  4091. J.D. Sterling Babcock                      jdsb@ee.duke.edu
  4092. John Baxter                                jwbaxter@pt.olympus.net
  4093. Mason L. Bliss                             mason@cis.umassd.edu
  4094. Scott Bronson                              urge@mcl.mcl.ucsb.edu
  4095. Jim Browne                                 jbrowne@ncsa.uiuc.edu
  4096. Richard Buckle                             richardb@cocytus.demon.co.uk
  4097. Ivan M Cavero Belaunde                     ivanski@world.std.com
  4098. Marc Cooperman                             coopem@panix.com
  4099. Mark Dawson                                marc@apple.com
  4100. Lawrence D'Oliveiro                        ldo@waikato.ac.nz
  4101. Dave Falkenburg, Apple Computer Inc.       falken@apple.com
  4102. Rick Gansler                               gansler@boardwalk.tiac.net
  4103. M. David Greenspon                         gremicf@yalevm.ycc.yale.edu
  4104. C.K. Haun                                  haun@apple.com
  4105. Michael Hecht                              Michael_Hecht@mac.sas.com
  4106. Robert Hess                                robert_hess@macweek.ziff.com
  4107. Bill Hofmann                               wdh@netcom.com
  4108. Mark B. Johnson                            mjohnson@apple.com
  4109. David B. Lamkins                           dblamkins@aol.com
  4110. Robert Lentz                               lentz@rossi.astro.nwu.edu
  4111. David Lewis                                lewis@netcom.com
  4112. Spencer Low                                spencerl@crl.com
  4113. John Mancino, Decision Maker's Software    mancino@decismkr.com
  4114. Roland Mansson                             roland.mansson@ldc.lu.se
  4115. Matsubayashi Kohji                         matubays@ics.es.osaka-u.ac.jp
  4116. Duane Murphy, Novell Inc.                  damurphy@wc.novell.com
  4117. Mark Nagata                                nagata@kurims.kyoto-u.ac.jp
  4118. Fabrizio Oddone                            simula3@di.unito.it
  4119. Carl R. Osterwald                          cro@br213mail.nrel.gov
  4120. Marco Piovanelli                           piovanel@ghost.dsi.unimi.it
  4121. Kees Pols                                  kpols@bio.vu.nl
  4122. Francois Pottier                           pottier@clipper.ens.fr
  4123. Jon Pugh                                   jonpugh@netcom.com
  4124. Quinn                                      quinn@cs.uwa.edu.au
  4125. Dave Radcliffe, Apple Computer Inc.        radcliff@apple.com
  4126. Thomas Reed                                reed@telesphere.wustl.edu
  4127. Pete Resnick                               resnick@cogsci.uiuc.edu
  4128. Paul Reznick                               PRzeznik@aol.com
  4129. Leonard Rosenthol                          leonardr@netcom.com
  4130. Jeremy Roussak                             jeremyr@dcs.qmw.ac.uk
  4131. Ray Sanders                                72511.232@CompuServe.COM
  4132. Eric Schlegel, Microsoft Corporation       ericsc@microsoft.com
  4133. Mark Simmons                               72511.256@CompuServe.COM
  4134. Zalman Stern                               zalman@adobe.com
  4135. Tim Swihart                                tim_swihart@quickmail.apple.com
  4136. Ilan Szekely                               ILANS@ds.huji.ac.il
  4137. Victor Tan                                 victort@extro.ucc.su.oz.au
  4138. Rodrigo Torres, Berkeley Systems           brklysystm@aol.com
  4139. Hans Verbrugge                             hverbrug@knoware.nl
  4140. John Watte                                 d88-jwa@nada.kth.se
  4141. Jonathan Wilson                            toast@diss.hyphen.com
  4142. Chris Wysocki                              wysocki@netcom.com
  4143. ---------------------------------------------------------------------------
  4144.  
  4145. And my colleagues at the Computer Department of the Biology Faculty of the
  4146. Vrije University in Amsterdam, The Netherlands for their help and support.
  4147. Also special thanks to Marco Piovanelli for his support and comments about
  4148. preliminary versions and updates.
  4149.  
  4150. The persons mentioned above provided information used in this list. They
  4151. did this on personal title, NOT on behalf of their employer, unless
  4152. explicitly stated otherwise.
  4153. I assume information you mail to me about Gestalt selectors may be used in
  4154. this list. Information made available to the general public (e.g. a posting
  4155. to a USENET newsgroup) is also included and the persons name added to this
  4156. chapter (and to the mailing list).
  4157. I will mail you back to thank you and include the parts from the list which
  4158. were changed, according to the information you provided, to let you check
  4159. them.
  4160.  
  4161. Definitions and Format
  4162. ======================
  4163. This chapter explains where the word 'Gestalt' comes from, a few things
  4164. are defined and it explains how each selector code entry looks like.
  4165.  
  4166. Use in Language
  4167. ---------------
  4168. Webster's Dictionary (?):
  4169.      ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
  4170.      \-<\e>n\ or gestalts (1922)
  4171.        [G, lit., shape, form]
  4172.        :a structure, configuration, or pattern of physical, biological,
  4173.        or psychological phenomena so integrated as to constitute a
  4174.        functional unit with properties not derivable by summation of its
  4175.        parts.
  4176. German-Dutch dictionary:
  4177.      Gestalt w [-en]
  4178.        stature, figure, form; Ritter von der Traurigen -, knight of the
  4179.        sorrowful figure.
  4180.  
  4181. Definitions
  4182. -----------
  4183. Apple Software
  4184.      This category includes all selectors installed by software published
  4185.      by Apple Computer, Inc.
  4186.      Inside Macintosh says this about them:
  4187.        "Apple reserves for its own use all four-character sequences
  4188.        consisting solely of lowercase letters and non alphabetic ASCII
  4189.        characters".
  4190.      It includes all selectors of the next two categories:
  4191.       
  4192. Apple System Software
  4193.      This category includes all selectors installed by System Software from
  4194.      Apple Computer, Inc.
  4195.  
  4196. Apple Additional Software
  4197.      These are selectors installed by additional, non-system, software from
  4198.      Apple Computer, Inc.
  4199.  
  4200. Third Parties Software
  4201.      These are selectors installed by software from parties other than
  4202.      Apple Computer, Inc.
  4203.      Inside Macintosh says about these:
  4204.        "If you have registered a creator string with Apple, you are
  4205.        strongly encouraged to use that sequence as your selector code".
  4206.      This type of selectors is included in this list with the motto "If you
  4207.      don't know they are there, you can't do anything with them".
  4208.      Especially the Third Party selectors may change with every new release
  4209.      and are therefore only listed in the 'known selectors' part when the
  4210.      author has described the structure in the documentation or by email to
  4211.      me. These selectors don't have a high priority but when possible I
  4212.      want to know at least which software installs it to exclude it as a
  4213.      possible "Apple selector".
  4214.      Some people at Apple also differentiate between commercial developers
  4215.      and others, as being "third" and "fourth" parties respectively. But
  4216.      with this list this is not the case.
  4217.  
  4218. Format Selector Entry
  4219. ---------------------
  4220. Format used to display information about each selector:
  4221.  
  4222. selector code (Software name & type [since version], by company/author)
  4223.      constant name
  4224.      description
  4225.  
  4226.      CONST declaration; {remark} *ref.number to source
  4227.  
  4228.      NOTE and/or WARNING:
  4229.  
  4230. Where the type is one of:
  4231. app  application (APPL)
  4232. cp   control panel (cdev)
  4233. ext  extension (INIT/appe/RDEV etc.)
  4234.  
  4235. Example:
  4236.  
  4237. COLA (Sugarwater ext [1.0] by John Sculley)
  4238.      gestaltSugarwaterVersion
  4239.      Returns version of Sugarwater as NumVersion.
  4240.  
  4241.      gestaltSugarwaterVersion = 'COLA'; *AB01
  4242.  
  4243.      WARNING: This example is fictitious.
  4244.  
  4245.      NOTE:
  4246.      Sugarwater? See the book 'West of Eden, The End of Innocence at
  4247.      Apple' by Frank Rose.
  4248.  
  4249. Most selectors are listed as four characters, if there are only two or
  4250. three characters displayed the remainder are spaces (or it's a typo!).
  4251. Diacritical characters are shown in the most logical normal character and
  4252. at the end of the entry a note is included about which key-combination to
  4253. press with a normal International system and US keyboard layout to get the
  4254. required diacritical character and also listed is its ASCII code.
  4255. When 'INF' is at the end of the first line it means it is an informational
  4256. selector, all others are environmental selectors.
  4257. The source reference number may also be used in other places than indicated
  4258. above. It then applies to other parts of the entry or to the whole entry.
  4259. A single question mark indicates an uncertainty regarding the information
  4260. in front of the question mark. Three question marks indicate complete
  4261. absence of the information.
  4262. Some constant-names may not originate from official publications.
  4263.  
  4264. Format Version Numbers
  4265. ----------------------
  4266. BCD (Binary Coded Decimal)
  4267.      $0x0402 means 4.0.2.
  4268. INTEGER
  4269.      The decimal representation of the returned value is the version.
  4270. Double BCD (my own fantasy name..., RR)
  4271.      $00010108 means 1.1.8.
  4272. NumVersion
  4273.      The format of the LongInt response can be coerced into type NumVersion,
  4274.      which is the same format as used for the 'vers' resource type.
  4275.  
  4276.      type
  4277.       NumVersion = packed record
  4278.        case INTEGER of
  4279.         0: (majorRev: SignedByte;  {1st part of version number in BCD}
  4280.             minorRev: 0..9;        {2nd part is 1 nibble in BCD}
  4281.             bugFixRev: 0..9;       {3rd part is 1 nibble in BCD}
  4282.             stage: SignedByte;     {stage code: dev, alpha, beta, final}
  4283.             nonRelRev: SignedByte);{revision level of non-released version}
  4284.         1: (version: LONGINT);     {to use all 4 fields at one time}
  4285.        end;
  4286.  
  4287.      stage is one of: $20 = development
  4288.                       $40 = alpha
  4289.                       $60 = beta
  4290.                       $80 = final
  4291.  
  4292. Legal Stuff
  4293. ===========
  4294. (c) 1992-1994, Rene G.A. Ros
  4295.  
  4296. See other sections (below) for remarks regarding liability, trademarks and
  4297. distribution.
  4298.  
  4299. Notice of Liability
  4300. -------------------
  4301. The information in this list is distributed on an "AS IS" basis, without
  4302. warranty. While every precaution has been taken in the preparation of this
  4303. list, neither the editor nor any contributor shall have any liability to
  4304. any person or entity with respect to any liability, loss, or damage caused
  4305. or alleged to be caused directly or indirectly by the information contained
  4306. in this list or by the computer software and hardware products described
  4307. herein.
  4308.  
  4309. Trademarks
  4310. ----------
  4311. Throughout this list trademarked names are used. Rather than put a
  4312. trademark symbol in every occurrence of a trademarked name, I state I am
  4313. using the names only in an editorial fashion and to the benefit of the
  4314. trademark owner with no intention of infringement of the trademark.
  4315.  
  4316. Distribution
  4317. ------------
  4318. The information in this list may be used freely. When you use the
  4319. information in this list for COMMERCIAL purposes, you may consider sending
  4320. the editor a donation. You are not allowed to distribute this list outside
  4321. any computer network (especially printed, on disk or CD-ROM) unless you
  4322. have contacted the editor and received permission to do so. This is also to
  4323. ensure you have the latest version. The updates may not be distributed,
  4324. these are ONLY for the persons on the mailing list.
  4325. You are not allowed to use excerpts of this list with your documentation or,
  4326. in any other way, without prior permission of the editor. You will receive
  4327. permission to include excerpts when you are subscribed to the mailing list.
  4328.  
  4329. Permission for distribution of the full list is granted to:
  4330. Aladdin Systems                      (InstallerMaker software)
  4331. Arizona Macintosh Users Group        (BBS in a BOX CD-ROM)
  4332. Club Macintosh de Quebec
  4333. CP Shareware
  4334. IDG Communications Nederland         (MacWorld CD-ROM)
  4335. Pacific HiTech, Inc.                 (Info-Mac CD-ROM)
  4336. Quantum Technologies, Inc.           (The Right Stuffed CD-ROM)
  4337.  
  4338. You are not allowed to distribute modified versions of this list,
  4339. including, but not limited to, deleting, adding or moving text or adding
  4340. non-text parts. Distribution in any electronical format except a normal
  4341. (or compressed) text file is not allowed without permission.
  4342. You are not allowed to redistribute it with any other name than
  4343. 'gestalt-selectors-XX.YYY' (where XX is the version number and YYY the suffix
  4344. to indicate compression etc.) unless because of technical reasons. In such
  4345. case a name should be chosen which resambles it as closely as possible to
  4346. avoid confusion.
  4347.  
  4348. Editor's Address
  4349. ================
  4350. Rene G.A. Ros
  4351. student Computer Science (fulltime),
  4352.        Hogeschool van Amsterdam (Institute of Technology)
  4353. member Computer Department (parttime),
  4354.        Biology Faculty, Vrije University Amsterdam
  4355. contract programmer Pascal and C, also 4th Dimension and other data-bases
  4356.  
  4357. Internet  : rgaros@bio.vu.nl (preferred)
  4358.             rgaros@nikhefk.nikhef.nl
  4359.             rgaros@htsa.hva.nl
  4360.             rgaros@dds.hacktic.nl
  4361. CompuServe: >INTERNET: rgaros@bio.vu.nl
  4362.             100112,1363
  4363.  
  4364. Mailing list:
  4365. Internet    contributions:
  4366.             gestalt-selectors-list@bio.vu.nl
  4367.  
  4368.             to subscribed/unsubscribe and for the archive server:
  4369.             gestalt-selectors-list-request@bio.vu.nl
  4370.  
  4371. CompuServe  contributions:
  4372.             >INTERNET: gestalt-selectors-list@bio.vu.nl
  4373.  
  4374.             to subscribed/unsubscribe and for the archive server:
  4375.             >INTERNET: gestalt-selectors-list-request@bio.vu.nl
  4376.  
  4377. Please contact me at the INTERNET address. I read my mail there almost
  4378. daily, while I log on to CompuServe only once or twice a month.
  4379.